Shell
為什麼變數的值在反引號內不會改變?
這是我的測試程式碼:
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 的回答,了解您的方法為何不起作用!