我正在編寫一個shell腳本,在命令行中輸入一個介於1和7之間的數字,並返回相應的星期幾。我的代碼目前如下所示:bash - elif語句返回相同的值,不管輸入如何
#!/bin/bash
echo "Please enter a number between 1 and 7 >"
read number
number=$n
if [ "$n"=="1" ]
then
echo "Monday"
elif [ "$n"=="2" ]
then
echo "Tuesday"
elif [ "$n"=="3" ]
then
echo "Wednesday"
elif [ "$n"=="4" ]
then
echo "Thursday"
elif [ "$n"=="5" ]
then
echo "Friday"
elif [ "$n"=="6" ]
then
echo "Saturday"
elif [ "$n"=="7" ]
then
echo "Sunday"
else
echo "error"
fi
無論輸入如何,都會返回「星期一」。如果我在==兩端添加空格,則無論輸入如何,它都會返回「錯誤」!我已經嘗試了各種東西,但不能工作了,爲什麼
請看看:http://www.shellcheck.net/ – Cyrus
你的awk代碼肯定是錯誤的:你在'number'變量的值,而是那麼你在比較中使用另一個變量(變量'n')。變量'n'似乎是未定義的。 – Jdamian
@Cyrus它告訴我問題在第4行'number = $ n'。我認爲它正在讀取的數值,也就是數字'沒有被賦予'$ n',但我不明白爲什麼 – pxdr0