shell中的变量都是以字符串的形式保存的,即使你赋值的时候给的是整形值,除非你通过declare -i来声明变量。
在进行数值/算术运算的时候,你可能会发现下面的情况
$ x=121 $ echo $x+1 121+1
定义变量x,并赋值一个整形的变量,可是echo $x+1的结果却不是我们想要的122,而是121+1。这是因为$x+1并没有被当做算术运算,而是简单的字符串的运算导致。
那如何在shell中进行数值/算术运算呢?(以下使用的shell为bash shell)
方法一:let命令
$ let "x=x+1" $ echo $x 122
方法二:$[ ]
$ echo $[x-1] 121 $ echo $x 122
方法三:$(( ))
$ echo $((x-1)) 121 $ echo $x 122
方法四:declare -i
$ declare -i x $ echo $x+1 122+1 $ x=$x+1 $ echo $x 123
通过declare声明变量x之后,需要重新给x赋值后,x才能得到算术运算的结果。
转载请注明:知识蚂蚁 » shell中的进行算术/数值运算的几种方法