在不支持布尔变量的bash中,布尔值通常如何表示?
在不支持布尔变量的bash中,布尔值通常如何表示?
我知道bash不支持布尔变量,那么人们通常如何表示需要稍后使用的值,而且它可以是真或假的?从这个问题上看,一些方法似乎是通过变量调用true
/false
程序,使用if中的字符串比较,或者使用case语句。这些是bash程序员常用的方法吗?还是有其他我没有考虑的方法?
bash不支持布尔变量,那么布尔值通常是如何在bash中表示的呢?这个问题的出现是因为bash不支持布尔变量,但是我们经常需要在脚本中使用布尔值。下面是一些在bash中表示布尔值的常用方法和解决方案。
首先,我们可以使用命令true
和false
来表示布尔值:
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中表示布尔值的常用方法和解决方案。