我使用Debian。
问题是当我在终端中输入echo $[1+2]
时,结果为3
。
但是,当我在shell文件中编写echo $[1+2]
时,结果为$[1+2]
。
答案 0 :(得分:1)
用于算术的POSIX sh语法,由Debian的灰和破折号以及现代shell支持,是$(( 1 + 2 ))
。 $[ 1 + 2 ]
语法是古老的Bourne,而不是POSIX sh的一部分。
尽管它的名字,bash实际上与ksh关系比与原始Bourne关系更密切;类似地,POSIX sh规范是参考旧版Korn shell构建的。因此,试图与Bourne兼容是非常值得的。