Shell 在具有布尔值的变量中测试not条件

Shell 在具有布尔值的变量中测试not条件,shell,testing,if-statement,boolean,conditional-statements,Shell,Testing,If Statement,Boolean,Conditional Statements,我隐式地给变量赋值一个布尔值 x=false 我能做到 $x || echo "the value is set to true" 但反向测试并不是那么简单和甜蜜 { ! $x || echo "the value is set to false " ; } 在伯恩(Ksh)中,它的计算结果如下 ! false 结果也不一样 因此可以使用opp条件的测试值(!) 这是对布尔值进行反向测试的唯一捷径,还是有更好的方法来表达它呢?我不确定我是否理解你的问题。您想根据$x是真还是假打

我隐式地给变量赋值一个布尔值

x=false
我能做到

 $x || echo "the value is set to true"
但反向测试并不是那么简单和甜蜜

 { ! $x || echo "the value is set to false "  ; } 
在伯恩(Ksh)中,它的计算结果如下

 ! false
结果也不一样

因此可以使用opp条件的测试值(!)


这是对布尔值进行反向测试的唯一捷径,还是有更好的方法来表达它呢?

我不确定我是否理解你的问题。您想根据$x是真还是假打印某些内容?如果是这样的话,我认为以下措施应该有效:

$x && echo "the value is true" || echo "the value is set to false "  ;
样品

$ x=true;if ! $x ; then echo "True if"; else echo "false if" ;fi
false if
$ x=false;if ! $x ; then echo "True if"; else echo "false if" ;fi
True if

{!$x | | echo“该值设置为true”}
在BASH/kshAnubhava中运行良好。欢迎回来,再次感谢。好吧,这正是我在过去使用过的,但它没有给出可预测的结果,尤其是在您“添加”它的情况下,因此我更改为trueMake
x=true
,然后调用上面的命令查看它是否打印<代码>$x | |表示两张底片。是的,谢谢。我的情况-我在case语句之前将标志设置为false,然后在'emI将在secThx中更新我的Q。我想测试布尔值的opp`$x&回显“msg”`
if ! $x 
 then
    YourThenCode
 else 
    YourElseCode
 fi
$ x=true;if ! $x ; then echo "True if"; else echo "false if" ;fi
false if
$ x=false;if ! $x ; then echo "True if"; else echo "false if" ;fi
True if