我正在编写一个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