所以我來檢查一下腳本的退出代碼是這個if語句:如何在while循環中更新「全局」變量?
if [ $? -eq 0 ]; then
wasSuccessful=true;
fi
在其他語言中,我會做這樣的事情:
while wasSuccessful == false
然後循環將繼續運行直到退出代碼爲真。 (我計劃實現一個循環計數器以及太多失敗的嘗試,但這是一個不同的問題來解決)
我想我需要一個這裏字符串,但我不完全確定如何看起來。下面是我的代碼粗線條的,現在,在擊:
wasSuccessful=false
while [ "$wasSuccessful" = "false" ]
do
#Bunch of code here, then the check for exit code
if [ $? -eq 0 ]; then
wasSuccessful=true;
fi
done
如何做這樣的事情任何建議,將不勝感激:)
您的代碼似乎沒問題。你面臨的問題是什麼? Bash中的所有變量都是全局變量,除非在函數中聲明爲局部變量。 – codeforester
我認爲while循環在子shell中執行,所以我對變量所做的更改僅保存到該會話範圍。這是不正確的? – iMatthewCM
@iMatthewCM''while循環'不能在subshell中執行,除非你把它們放在引號'(commands)'裏面。 – alijandro