shell编程
shell变量的缺点?
弱类型
默认字符串型
shell运算符
1. declare命令:声明变量类型
declare [+/-] [选项] 变量名
选项
-:给变量设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
[root@localhost sh]#movie[0]=zp
[root@localhost sh]# movie[1]=tp
[root@localhost sh]# declare -a movie[2]=live
#定义数组
[root@localhost sh]# echo ${movie}
zp
[root@localhost sh]# echo ${movie[2]}
live
[root@localhost sh]# echo ${movie[*]}
zp tp live
#查看数组
-i:将变量声明为整数型(integer)
[root@localhost sh]# aa=11
[root@localhost sh]# bb=22
#给变量aa、bb赋值
[root@localhostsh]# cc=$aa+$bb
[root@localhost sh]# declare -i cc=$aa+$bb
#声明变量cc的类型是整数型,它的值是aa和bb的和
[root@localhostsh]# echo $cc
-x:将变量声明为环境变量
declare –x test=123
#和export作用相似,但 其实是declare命令的作用
-r:将变量声明为只读变量
[root@localhost sh]#declare -r test
#给test赋予只读属性,但是请注意只读属性会让变量不能修改不能删除,甚至不能取消只读属性。
-p:显示指定变量的被声明的类型
[root@localhost sh]# declare-p cc
declare -i cc="33"
#查询指定变量的属性
declare–p
#查询所有变量的属性
2. 数值运算的方法
expr或let数值运算工具
[root@localhost sh]# aa=11
[root@localhost sh]# bb=22
[root@localhostsh]# dd=$(expr $aa + $bb)
[root@localhostsh]# echo $dd
33
#dd的值是aa和bb的和。注意“+”号左右两侧必须有空格。
“$((运算式))”或“$[运算式]”
[root@localhost sh]# aa=11
[root@localhost sh]# bb=22
[root@localhost sh]# ff=$(($aa+$bb))
[root@localhost sh]# echo $ff
33
[root@localhost sh]# uu=$[$aa+$bb]
[root@localhost sh]# echo $uu
33
3. 变量测试(语法简单,执行效率高,逻辑结构不易记,使脚本代码精简)
[root@localhost sh]# unset y
#删除变量y
[root@localhost sh]# x=${y-2}
#进行测试
[root@localhost sh]# echo $x
2
#因为变量y不存在,所以x=new
[root@localhost sh]# x=${y-2}
[root@localhost sh]# echo $x
[root@localhost sh]# y=1
[root@localhost sh]# x=${y-2}
[root@localhost sh]# echo $x
1