Shell脚本深入教程:Bash支持的运算操作
Bash支持的运算操作
1 | id++ id-- ++id --id |
几个注意事项:
- 空变量或未定义变量或字符串变量参与数值运算时,都当作数值0
- 变量替换先于算术运算,所以既可以使用变量名
var
,也可使用变量引用$var
,例如$[a+1]
和$[$a+1]
在结果上是等价的 - 算术表达式可以进行嵌套,先计算最内层。如
$(( (6+4)/$[2+3] ))
- 0开头的表示八进制,0x或0X开头的表示十六进制,可使用
base#N
的方式指定N是多少进制的数。例如echo $[ 010 + 10 ]
得到18、echo $[ 0x10 + 10 ]
得到26,echo $[ 2#100 + 10 ]
得到14。参见下面一个实际案例 - 由上面的运算符可看出,
$[]
、$(())
以及let命令,既支持算术运算,还支持赋值、大小比较、等值比较。如a=3;echo $[a==3]
有时候从字符串中截取得到的数值是以0开头的,如果要让它参与运算,需要指定为十进制,否则会当作八进制。例如:
1 | datetime1=`date +"%s.%N"` |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论