[英]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
#
並且卡在#中,我可以輸入更多文本,但它什么也沒做。
您的代碼在無限循環中運行:由於name1
和name2
一開始不相等,因此您不會進入 if-then-else 的then
塊。 因此, exit
永遠不會得到值 1。
附帶說明:由於exit
是內置的 shell ,因此您應該更喜歡該變量的不同名稱以避免混淆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.