【发布时间】:2011-01-25 19:43:20
【问题描述】:
我刚刚偶然发现了 bash 语法:
foo=42
bar=$[foo+1] # evaluates an arithmetic expression
当我在谷歌上搜索时,我找到了http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_05:
3.4.6。算术展开
算术扩展允许对算术表达式求值并替换结果。算术展开的格式为:
$(( EXPRESSION ))...
Bash 用户应尽可能使用带方括号的语法:
$[ EXPRESSION ]但是,这只会计算EXPRESSION的结果,不做任何测试...
在我的 bash 手册页中,我只能找到 $(( EXPRESSION )) 形式,例如:
foo=42
bar=$((foo+1)) # evaluates an arithmetic expression
那么,$[...] 没有执行哪些测试,而$((...)) 执行了哪些测试,或者$[...] 只是$((...)) 的旧版本?
【问题讨论】:
标签: bash syntax operators legacy arithmetic-expressions