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