簡體   English   中英

Bash if 語句卡住

[英]Bash if-statement gets stuck

我得到了這個循環,但由於某種原因,if 條件卡住了。 while 循環完美運行。

輸入是那些(x、y、z 是每次執行腳本時都會更改的單詞):

name0="Car name X"

name1="Car name Y"

name2="Car name Z"
        echo $name0
        echo $name1
        echo $name2
while [ $ext -eq 0 ]
do
    if [ "$name1" = "$name2" ]
    then
    ext=1
        name1="`shuf -n 1 cars.csv | cut -d";" -f1`"
        name1c=`echo $name1 | cut -d" " -f1`
        ext=1
    else
        :
    fi
done

編輯循環:

while [ $ext -eq 0 ]
do
    if [ "$name1" != "$name2" ]
    then
        :
    else

        name1="`shuf -n 1 cars.csv | cut -d";" -f1`"
        name1c=`echo $name1 | cut -d" " -f1`
        ext=1
    fi
done

它輸出這樣的想法(不帶#):

Car name 1

Car name 2

Car name 3
#

並且卡在#中,我可以輸入更多文本,但它什么也沒做。

您的代碼在無限循環中運行:由於name1name2一開始不相等,因此您不會進入 if-then-else 的then塊。 因此, exit永遠不會得到值 1。

附帶說明:由於exit是內置的 shell ,因此您應該更喜歡該變量的不同名稱以避免混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM