如何将 x + 1 的值赋给 x?我可以用其他语言做到这一点,但在 bash 中却无法弄清楚。
答案1
我刚刚测试了两种不同的方法并且都对我有用:
x=$((x+1))
...或者...
x=$((++x))
答案2
这应该可以
let x=$x+1
答案3
这可能会有用:
x = `expr $x + 1`
答案4
@Bandit 的回答很好,但我想强调一下“let”和(( ))与正常 shell 语法的区别:
let x++
导致 bash(或 ksh,或任何 POSIX shell)将表达式视为“算术评估”,其中引用的变量不需要以“$”开头。使用 (( )) 的一个优点是其他特殊标记不需要引用或转义,例如“*”表示乘法,如下所示:
(( x = x * 2 ))
我发现这种语法比使用表达式输出的 $(( )) 稍微清晰一些,例如
x=$(( x * 2 ))