Linux Shell脚本 - 变量和数据类型

nmglwy 2019-07-19

摘要:本文主要学习了Shell脚本中的变量和数据类型。

变量

定义变量的语法

定义变量时,变量名和变量值之间使用“=”分隔,并且等号两边不能有空格:

变量名=变量值

变量名规则

变量名的定义必须遵循以下规则:

1 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
2 中间不能有空格,可以使用下划线。
3 不能使用标点符号。
4 不能使用bash里的关键字。

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可,建议将变量名使用“{}”括起来之后再添加美元符号:

echo ${name}

修改变量为只读

使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变,也不能被删除:

readonly name

删除变量

使用unset命令可以删除变量,但不能删除只读变量:

unset name

数据类型

字符串

字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。

建议使用双引号,因为双引号里可以有变量和特殊字符,可以按照变量和特殊字符去使用。

声明字符串类型的变量:

name="Sam"

拼接字符串:

hello="hello, $name !"

整数型

在Shell中所有的变量默认都是字符串型。也就是说,如果不手工指定变量的类型,那么所有的数值都是不能进行运算的:

1 [root@localhost ~]# a=1
2 [root@localhost ~]# b=2
3 [root@localhost ~]# c=$a+$b
4 [root@localhost ~]# echo $c
5 1+2

如果想要进行数学运算,可以使用“$((运算式))”或“$[运算式]”方式运算:

1 [root@localhost ~]# echo $(($a+$b))
2 3
3 [root@localhost ~]# echo $[$a+$b]
4 3

数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。用括号来表示数组,数组元素用空格符号分割开。定义数组的一般形式为:

数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

声明数组类型的变量:

数组名=(值1 值2 ... 值n)

也可以通过指定下标来声明:

数组名[下标]=值

获取数组指定下标的值:

${数组名[下标]}

使用“@”符号可以获取数组中的所有元素:

${数组名[@]}

 

相关推荐