0
我想在OS X終端中運行一個shell腳本。只要您輸入m或a,程序就會終止。在OR狀態下循環不起作用。 BASH外殼
問題是,我無法獲得OR語句的工作。
#!/bin/sh
read File
while [ "$File" != "m" ] || [ "$File" != "a" ]
do
read File
done
當我只是做
while [ "$File" != "m" ]
它完美的罰款。我曾嘗試過多種方法,如
while test $File != "m" || test $File != "a"
while test $File != "m" -o test $File != "a"
while [ $File != "m" -o $File != "a" ]
他們都沒有工作。 上面的代碼我張貼不停止當用戶輸入一個 「M」 或
也許你想''&&代替''||。您現在使用的條件將始終評估爲true,因爲如果其中一個選項評估爲false,則另一個評估爲true。換句話說,你的邏輯是可疑的。 –
這個構造也很奇怪。把它寫成'while read file;如果測試「$ File」= m ||的話「$ file」= a;然後打破; fi ...'。您當前的構造不檢查是否有任何「讀取」失敗,所以當輸入流終止時它會表現異常。 –
請看看:[我應該怎麼做當有人回答我的問題?](http://stackoverflow.com/help/someone-answers) – Cyrus