0

我正在使用 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,如果我删除它,问题就会消失,但至于为什么我不知道。

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

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

4

1 回答 1

0

感谢abhishek phukan的回答!

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

于 2017-11-15T18:33:57.410 回答