||
$ num=1
$ num=$num+2
$ echo $sum
1+2
为什么结果不是3?原因很简单,Shell脚本语言是一种“弱类型语言”,它并不知道变量num中保存的是一个数值,因此在遇到num=$num+2这个命令时,Shell只是简单地把$num和“+2”连在一起作为新的值赋给变量num(在这方面,其他脚本语言----例如PHP似乎表现得更聪明一些)。为了让Shell得到“正确”的结果,可以试试下面的这条命令。
$ num=$[ $num + 1 ]
$[ ]这种表示形式告诉Shell应该对其中的表达式求值。如果你对这条命令不太容易能看清楚的话,那么不妨对比一下这两条命令的输出。
$ num1=1+2
$ num2=$[ 1 + 2 ]
$ echo $num1 $num2
1+2 3
Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )
GMT+8, 2024-11-24 06:26 , Processed in 0.029009 second(s), 18 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.