Shell

為什麼變數的值在反引號內不會改變?

  • November 17, 2016

這是我的測試程式碼:

a=1
echo $a
echo `let ++a`
echo $a

我看到的輸出是1, 1。為什麼第三行不修改 的值a

因為...等價於$(…),它是一個子shell。子shell 關閉時,子shell 中更改的變數會失去。

你可以像這樣增加一個變數:

a=1
((a++))
echo $a
2

這更像是“C風格”遞增,而不是:

let a++

請參閱 Ipor Sircer 的回答,了解您的方法為何不起作用!

引用自:https://unix.stackexchange.com/questions/324064