【问题标题】:testing a not condition in a variable that has boolean value在具有布尔值的变量中测试非条件
【发布时间】:2014-02-26 01:37:57
【问题描述】:

我将布尔值隐式分配给变量

x=false

我能做到

 $x || echo "the value is set to true"

但反向测试并不仅仅是那么简短和甜蜜

 { ! $x || echo "the value is set to false "  ; } 

在 Bourne (Ksh) 中,它的评估类似于

 ! false

结果不一样

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

[ "$x"  = "true" ]

这是对布尔值进行反向测试的唯一捷径还是有更好的表达方式

【问题讨论】:

  • { ! $x || echo "the value is set to true"; } 在 BASH/ksh 中工作正常
  • 阿努巴瓦。欢迎回来,再次感谢。嗯 - 我正是我过去使用的,但它没有给出可预测的结果,尤其是在你“和”它的情况下,所以我改为 true
  • 制作x=true,然后调用上面的方法查看它是否打印。 ! $x || 表示 2 个负数。
  • 是的,谢谢。我的情况 - 我在case语句之前将标志设置为false,然后在'em中将它们设置为true
  • 我会在几秒钟内更新我的 Q

标签: shell testing if-statement boolean conditional-statements


【解决方案1】:

我不确定我是否理解您的问题。你想根据 $x 是真还是假来打印一些东西吗?如果是这样,我认为以下应该可行:

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

【讨论】:

  • 谢谢。我想测试布尔的opp`! $x && echo "味精"`
【解决方案2】:
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

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多