Я новичок в bash-скриптинге и мне нужна помощь.
Я создал скрипт, который должен сравнивать пользовательский ввод (фиксированный выбор для 045, 046, 287 или 279). С другими ценностями.
Когда пользователь вводит 045 или 046, тогда оператор if равен true и должен отображать
Вы выбрали $ SID. Будет использовано меню 1
Если пользователь вводит 287 или 279, утверждение должно быть ложным и отображать
Вы выбрали $ SID. Будет использовано меню 2
$ SID - это пользовательский ввод, указанный выше.
if [ "$SID" == "046" -o "045" ] ; then
printf "You have choosen $SID. Menu 1 will be used"
else
printf "You have choosen $SID. Menu 2 will be used"
fi
Но при запуске сценария он всегда отображает истинное утверждение с пользовательским вводом, отображаемым в расположении $ SID.
You have choosen 045. Menu 1 will be used
You have choosen 046. Menu 1 will be used
You have choosen 287. Menu 1 will be used
You have choosen 279. Menu 1 will be used
Что бы я ожидал, это:
Когда используется 045 или 046:
You have choosen 045. Menu 1 will be used
You have choosen 046. Menu 1 will be used
Когда используется 279 или 287:
You have choosen 287. Menu 2 will be used
You have choosen 279. Menu 2 will be used
Я также попробовал следующее выражение if без результатов:
if [ $SID -eq 046 -o 045 ] ; then
if [ "$SID" -eq "046" -o "045" ] ; then
if [ $SID = 046 -o 045 ] ; then
if [ "$SID" = "046" -o "045" ] ; then
Что мне не хватает?