这是我的测试代码:
a=1
echo $a
echo `let ++a`
echo $a
我看到的输出是1
, 1
。为什么第三行不修改 的值a
?
答案1
因为`...`相当于$(...),它是一个子shell。当子 shell 关闭时,子 shell 中更改的变量将会丢失。
答案2
您可以像这样增加变量:
a=1
((a++))
echo $a
2
这更像是“C 风格”递增,而不是:
let a++
请参阅 Ipor Sircer 的回答为什么你的方法没有成功!