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中的进行算术/数值运算的几种方法

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消