专业编程基础技术教程

网站首页 > 基础教程 正文

Shell脚本怎么写?(1)——Shell 变量类型和定义

ccvgpt 2024-08-19 12:27:07 基础教程 18 ℃

上期回顾如下:

Shell脚本怎么写?(0)

Shell脚本怎么写?(1)——Shell 变量类型和定义

紧接着上期,我们今天接着来给大家介绍如何在shell脚本中使用变量。

shell脚本是一个十分完备的编程语言,因此,它也可以使用变量来保存数字,字符串,数组,还有类似python的字典。

接下来我们先来介绍一下shell 脚本中常见的几种数据类型吧。

1.shell脚本默认为字符串类型

示例如下:

首先是定义一个变量的语法,等号左边是变量名,右边是变量值(注意,shell脚本变量定义时,等号左右不能存在任何空格,否则会报错)。

然后使用上节课讲过的echo命令进行打印,我们可以使用 ${mystr} 的格式, 也可以使用 $mystr 不加大括号的形式, 均可以打印出正确的变量内容,大括号在这种情况下可以省略。

大括号的作用一般是用来分割变量名和普通字符的。

比如下面示例:

在打印一连串的字符串中夹杂着我们自己定义的变量时,大括号不能省略,否则存在误判的可能。

2.shell 变量中的数值类型变量

请看下面的示例:

执行结果如下:

shell 脚本中的数值型变量可以直接定义,并运算,支持常见的加减乘除取余等运算符,也支持大于等于小于等关系运算符的运算(在 if 判断中使用)。

这节课我们聚焦于变量,对于数值类型的变量有几种计算语法。

如上图,

a. 我们可以使用 (( ))内部包含运算式子,可以正确返回运算结果。

b. 我们可以使用let 关键字,搭配变量名的方式,直接把运算结果赋值给新的变量

c. 我们可以使用expr shell内置函数,搭配运算式子,则可以直接算出结果。

d. 我们可以使用[ ] 包裹运算公式,也可以算出计算结果。

3. shell 脚本中的数组

示例如下,有两种定义方式,这两种定义方式是等价的:

第一个my_array 是直接在定义时,进行全量初始化。使用小括号括起来多个item项即可,item项的类型可以随意,shell中默认类型都是字符串,字符数值类型可以被运算。

然后我们进行数组的遍历,遍历的方式可以使用数组下标 0, 1, 2 进行访问。

也可以使用[*] 和 [@] 进行全量遍历。

第二种数组变量的定义方式是直接使用显示下标[0] [1] [2] .... 进行赋值,同样的,也可以使用多种类型。

此处为了方便演示,使用了for 循环遍历数组中的元素并打印。后面会详细讲解for循环。

执行结果如下图所示:

4.shell 脚本中的字典类型--学名是关联数组

如下示例所示:

基本上就是python中的字典类型类似,可以使用key - value 对的方式保存数据。

使用方式上和数组类似,除了上面的定义方式外,也可以使用和数组类似的下标单个定义的方式。

最重要的别忘了declare -A xxxx (xxxx 为变量名

上面脚本执行结果如下:

好的,综上所有几乎就是shell 脚本中所有的数据类型了。

大家可以看到,shell脚本的数据类型也是蛮丰富的,跟python等脚本语言相比,也差不多。

shell脚本也是完全图灵完备的编程语言,理论上可以执行任何任务。

这节课就先介绍到这里,变量这块的话,可能要分为两期来讲,这算是上期,给大家介绍了变量的基础类型和变量的声明,定义,简单的使用。

实际上,shell脚本针对字符串类型,有许多的高级使用方式,比如字符串变量替换,变量正则匹配等等。。将在下一期继续给大家进行介绍。

如果大家感兴趣,请关注我,下一期变量的高级使用方法在平时真实工程脚本中,是十分常用的哟。。

Tags:

最近发表
标签列表