How to evaluate a boolean variable in an if block in bash?
本问题已经有最佳答案,请猛点这里访问。
我已经定义了以下变量:
1  | myVar=true  | 
现在我想按照以下方式运行:
1 2 3 4 5 6  | if [ myVar ] then echo"true" else echo"false" fi  | 
上面的代码确实有效,但如果我尝试设置
1  | myVar=false  | 
它仍将输出真实。
可能是什么问题?
编辑:我知道我可以做一些表格
1  | if ["$myVar" ="true" ]; then ...  | 
但它有点尴尬。
谢谢
bash不知道布尔变量,
解决方案是:
1  | if $myVar ; then ... ; fi  | 
因为
请注意,值是"交换"的。 
安全警告:这是有效的,因为BASH扩展了变量,然后尝试将结果作为命令执行!确保变量不能包含
请注意,
1 2 3 4 5  | case $myvar in (true) echo"is true";; (false) echo"is false";; (rm -rf*) echo"I just dodged a bullet";; esac  | 
您可能还想重新考虑为什么