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



我使用if语句为yad GUIzenity 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通常用于整数运算,在这种情况下效果更好。我不知道为什么潜台词影响了答案。

相关内容

  • 没有找到相关文章

最新更新