1
我正在嘗試一些簡單的bash腳本,我正在研究一個簡單的比較腳本,程序在其中讀取一個字符char
,如果它是「Y」或「y」,它會打印「是「,如果是」N「或」n「,則爲」否「。字母Y,Y,N,n被認爲是唯一將被用作輸入的字母。Bash if else條件問題
#!/bin/sh
read char
if (($char = "Y")) || (($char = "y"))
then
echo "YES"
else
echo "NO"
fi
上述腳本y或工作,但是當我試圖把N或N,它仍然打印「是」,我試圖找出我做錯了。我知道這與括號有關,因爲當我使用帶括號的語法時,像這樣
if [ "$char" == "Y" ] || [ "$char" == "y" ]
它工作得很好。 我已經嘗試了所有組合的括號,如
if (("$char" = "Y")) || (("$char" = "y"))
或
if (($char == "Y")) || (($char == "y"))
或
if (("$char" == "Y")) || (("$char" == "y"))
或
if (("$char" == "Y" || "$char" == "y"))
但他們沒有工作。 你能告訴我我犯的錯誤是什麼?
'sh'不'bash' – Cyrus
你是對的。我應該在原始文章中更改它嗎? – Ioannis