Я пишу сценарий оболочки, чтобы взять число от 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
@ Кир говорит, что проблема в строке 4 'number = $ n'. Я думаю, что значение, которое он читает, ака 'номер', не присваивается' $ n', но я не понимаю, почему – pxdr0