shell 是弱类型的语言:
declare
命令用于变量声明,在不用该关键词的情况下,则默认都为 String
类型。
# declare [+/-] [选项] 变量名
# 操作符:
# -:添加类型属性
# +:取消类型属性
# 选项:
# [-]:String(默认) 字符串型
# a:Array 数组型
# i:Integer 整数型
# x:环境变量型,功能与 export 指令类似
# r:只读类
# p:获取变量的类型
试一试
# declare -i x=1
# declare -i y=2
# declare -i z=$x+$y
# echo $z
# 3
expr let $((运算式)) $[运算式] 命令
# x=1
# y=2
# expr $x + $y # 注两个变量之间需要有空格
# 3
# let z=$x+$y
# echo $z
# 3
# 赋值
# z=`expr $x + $y`
# z=$(expr $x + $y)
# z=$(($x+$y))
# z=$[$x+$y]
运算符
优先级 | 运算符 | 说明 |
---|---|---|
13 | -、+ | 单目负、单目正 |
12 | !、~ | 逻辑非、按位取反或补码 |
11 | *、/、% | 乘、除、取模 |
10 | +、- | 加、减 |
9 | <<、>> | 按位左移、按位右移 |
8 | <=、>= | 大小比较 |
7 | ==、!= | 等于、不等于 |
6 | & | 按位与 |
5 | ^ | 按位异或 |
4 | | | 按位或 |
3 | && | 逻辑与 |
2 | | | 逻辑或 |
1 | =、+=、-=、&=... | 赋值、运算且赋值 |
end.