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 |
您可能还想重新考虑为什么