五、shell变量和运算符
变量:
由字母、数字、下划线组成,但是不能以数字开头。
变量的默认类型都是字符串型,若要进行数值运算,则必须指定变量类型为数值型。一般用$(( ))。
变量用等号连接值,等号左右两侧不能有空格。
变量分类:
用户自定义变量: name="1111"
环境变量:一般大写
位置参数变量:这种变量主要是用来向脚本中传递参数或者属鸡的,变量名不能自定义,变量的作用是固定的。
预定义变量
(用户自定义变量和环境变量忽略不讲。)
1、位置参数变量:
$n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,$@把每个参数区分对待
$# 这个变量代表命令行中的所有参数的个数
2、预定义变量:
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令不正确了。
$$ 当前进程的id号
$! 后台运行的最后一个进程的进程号
3、read接收键盘输入:
read [选项] [变量名]
选项:
-p “提示信息”:在等待read输入时,输出提示信息
-t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数:read命令只接受指定的字符数,就会执行
-s :隐藏输入的数据,适用于机密信息的输入
运算符:
1、数值运算方法
(1)使用declar声明变量类型
既然所有变量的默认类型是字符串类型,使用declare命令可以实现声明变量的类型,命令如下:
declare [+/-][选项] 变量名
选项:
-:给变量设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
-i:将变量声明为整数型
-r: 将变量声明为只读变量
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型
(2)使用expr或let数值运算工具
注意:使用expr时,“+”号左右两侧必须有空格
(3)使用 “$((运算式))” 或 “$[运算式]”