在不支持布尔变量的bash中,布尔值通常如何表示?

23 浏览
0 Comments

在不支持布尔变量的bash中,布尔值通常如何表示?

我知道bash不支持布尔变量,那么人们通常如何表示需要稍后使用的值,而且它可以是真或假的?从这个问题上看,一些方法似乎是通过变量调用true/false程序,使用if中的字符串比较,或者使用case语句。这些是bash程序员常用的方法吗?还是有其他我没有考虑的方法?

0
0 Comments

bash不支持布尔变量,那么布尔值通常是如何在bash中表示的呢?这个问题的出现是因为bash不支持布尔变量,但是我们经常需要在脚本中使用布尔值。下面是一些在bash中表示布尔值的常用方法和解决方案。

首先,我们可以使用命令truefalse来表示布尔值:

bool=true
if $bool; then echo Y; else echo N; fi   # => Y

我们还可以使用字符串来表示布尔值:

bool="yes"
if [[ $bool == "yes" ]]; then echo Y; else echo N; fi   # => Y

如果要检查字符串是否为空,也可以使用以下方法:

bool=""
if [[ $bool ]]; then echo Y; else echo N; fi   # => N

另一种表示布尔值的方法是使用零和非零整数:

bool=0
if ((bool)); then echo Y; else echo N; fi   # => N

此外,bash还提供了使用布尔控制运算符的形式:

((bool)) && echo Y || echo N

需要注意的是,A && B || C这种形式需要小心使用,如果A或B中有一个失败,C将会执行。而使用if A; then B; else C; fi的形式,只有在A失败的情况下,C才会执行,无论B发生了什么。

最后,我们还可以通过将上述方法结合起来使用,来表示布尔值。

以上就是在bash中表示布尔值的常用方法和解决方案。

0