Почему мое заявление if не работает (bash - zenity)?

Я использую оператор if для запуска разных ответов для каждого параметра, выбранного в графическом интерфейсе YAD zenity fork,

По некоторым причинам оператор if работает с некоторыми параметрами, а не с другими!?

ПРИМЕЧАНИЕ: я заменяю '^' за ' в примере

opt=^yad --list --column="Option"  --column="Description" \
     1 "option 1" \
     2 "option 2
        <i> subtext </i>" \ 
     | cut -c 1^
echo $opt
if [[ $opt == 1 ]]
then
    echo 1
elif [[ $opt == 2 ]]
then
    echo 2
else 
    echo error

первый вариант дает: 1 1

Вариант 2 дает: 2 error,

Переменная записывается правильно, как это видно из echo $opt выход. Я знаю, что это как-то связано с subtextЕсли я сотру его, проблема исчезнет, ​​но почему я понятия не имею.

Может кто-нибудь помочь мне исправить или предложить обходной путь?

Спасибо за всю твою помощь! Эта проблема действительно ставит меня в тупик.

1 ответ

Решение

Спасибо abhishek phukan за ответ!

Используя == оболочка хотела обрабатывать переменные как строку, -eq обычно используется для целочисленных операций и работает лучше в этом случае. Почему подтекст повлиял на ответ, я не знаю.

Другие вопросы по тегам