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