2014-11-24 20 views
0

我想讓這個腳本重複somescript.sh,當我點擊返回,直到我寫q。我想我已經非常接近了,但是如果它讀「q」,我不能讓$ actionLoop設置爲0,我在這裏做錯了什麼?一個bash腳本重複相同的腳本動作,一遍又一遍地按下終端中的返回鍵,直到我按q鍵

#!/bin/bash 

    $actionLoop = 1 
    while [ ${actionLoop} 1 ] 
    do 
     echo "do another random review script?" 
     sh /somescript.sh 
     echo "Done. Press q to quit." 
     read response 
     [ $response = "q" ] && $actionLoop = 0 
    done 
+0

變量聲明/賦值不能以$開頭,並且在= – DRC 2014-11-24 23:36:21

回答

1

變化

$actionLoop = 1 

actionLoop=1 

同樣,這條線

[ $response = "q" ] && $actionLoop = 0 

[ $response = "q" ] && actionLoop=0 

分配變量時不能使用$,並且您也不能在任務周圍留出空格。


IMO,你根本不需要這個變量。當給出q時,使用無限循環並分解它。

while : ; 
    do 
     echo "do another random review script?" 
     sh /somescript.sh 
     echo "Done. Press q to quit." 
     read response 
     [[ "$response" = "q" ]] && break 
    done 

我個人比較喜歡的bash內置[[]]而不是[(測試)命令。有些人更喜歡[以與舊殼體兼容。

相關問題