我想在 shell 脚本中以 POSIX-ly 将两个数字相加。我知道我可以这样做:
a=1
b=2
sum=$((a+b))
`
但如果我用(ie )尝试sum=`(a+b)`
,它不起作用;并且$( ... )
语法不是 POSIX。我也可以将其通过管道传输到bc
or expr
,但如果可以的话,我宁愿不这样做。
答案1
语法$((...))
是POSIX。链接在这里。
答案2
您混淆了 a 的语法“命令替换”$(…)
里面有几个括号(也有特定的语法含义):$( (…) )
带有算术扩展$((…))
(注意没有空格)。
确实$((…))
是POSIX 中指定。