Как правильно сравнить переменную и строку в Bash? - PullRequest
0 голосов
/ 27 октября 2019

Я делаю сценарии bash впервые и решил попробовать сравнить две строки, и хотя мой синтаксис, насколько я знаю, в порядке, он все еще не работает.

Я прочиталпара старых вопросов, и они не предлагают ничего, что я не пробовал раньше

Я попробовал следующее: Использование ==;=, -eq

    echo 'Enter the letter: '
    read l
    if  ["$l"='y' -o "$l"='Y'];then echo 'Yes'
    elif  ["$l"='n' -o "$l"='N']; then echo 'No'
    else echo 'Try again dum dum'
    fi

Он правильно читает входные данные, но при сравнении двух строк выдает следующее: YesNo.sh: строка 3: [n = y: команда не найдена YesNo.sh: строка 4: [n = n: команда не найдена Попробуйте еще раз dum dum

1 Ответ

0 голосов
/ 27 октября 2019

Логическое выражение Bash ('[' и '[[')) требует, чтобы токены были разделены пробелами

if  [ "$l" = 'y' -o "$l" = 'Y' ];then echo 'Yes'
elif  [ "$l" = 'n' -o "$l" = 'N' ]; then echo 'No'
else echo 'Try again dum dum'
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...