为什么我的 if 语句不起作用(bash - zenity)?

Why is my if statement not working (bash - zenity)?

我正在使用 if 语句 运行 对在 yad GUI 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 有关,如果我删除它,问题就会消失,但至于为什么我不知道。

任何人都可以帮助我解决问题或提出解决方法吗?

感谢您的帮助!这个问题真的难倒我了。

感谢abhishek phukan的解答!

通过使用 ==,shell 想要将变量视为字符串,-eq 通常用于整数运算,在这种情况下效果更好。为什么潜台词影响了我不知道的答案。