shell编程之运算符
shell编程之运算符
shell变量的缺点
弱类型
默认字符串型
1、declare命令
- 删除变量
unset y
#删除变量y
- 声明变量
declare声明变量类型
declare [+/-] [选项] 变量名
- : 给变量设定类型属性
+ : 取消变量的类型属性
例如:
-a : 将变量声明为数组型
-i : 将变量声明为整数型(integer)
-x : 将变量声明为环境变量
-r : 将变量声明为只读变量
-p : 显示指定变量的被声明的类型
aa=11
bb=22
declare -i cc=$aa+$bb #声明变量cc的类型是整数型,它的值是aa和bb的和
33
- 声明数组变量
Shell编程是弱类型语言,只要明确使用[]加上下标,即为数组,了解数组概念即可,在一个变量里保存不同的值,每一个值用一个下标表示。
#!/bin/bash
#定义数组
movie[0]=zp
movie[1]=tp
declare -a movie[2]=live
#查看数组
echo ${movie}
echo ${movie[2]}
echo ${movie[*]}
zp
live
zp tp live
*声明环境变量
export调用declare命令
aa=11
declare -x aa
或者
aa=11
export aa
*声明变量只读属性
declare -r test
#给test赋予只读属性,但是请注意只读属性会让变量不能修改不能删除,甚至不能取消只读属性
2、数值运算的方法
*expr或let数值运算工具
#给变量aa和变量bb赋值
aa=11
bb=22
dd=$(expr $aa + $bb)
#dd的值是aa和bb的和。注意,"+"号左右两侧必须有空格
*"[运算式]"
aa=11
bb=22
ff=$[$aa+$bb]
gg=$(($aa+$bb))
gg=$(date) 注意,$()是执行系统命令并赋值
3、变量测试
变量测试通用度不高,只针对shell语言生效,了解即可。
这种方式好处是代码精简,缺点是逻辑理解困难。