bash中的布尔值通常是如何表示的,它不';你不支持布尔变量吗?

bash中的布尔值通常是如何表示的,它不';你不支持布尔变量吗?,bash,sh,zsh,Bash,Sh,Zsh,我知道bash不支持布尔变量,所以人们通常如何表示需要在以后使用的值,可以是真的,也可以是假的?从中,有些方法似乎是通过变量调用true/false程序,在if中进行字符串比较,并使用case语句。这些是bash程序员常用的方法,还是我没有考虑其他方法?只是扩展了您问题中的想法: true/false命令 bool=true 如果$bool;然后是回音Y;else-echon;fi#=>Y 字符串值 bool=“是” 如果[$bool==“是”];然后是回音Y;else-echon;fi#=>

我知道bash不支持布尔变量,所以人们通常如何表示需要在以后使用的值,可以是真的,也可以是假的?从中,有些方法似乎是通过变量调用
true
/
false
程序,在if中进行字符串比较,并使用case语句。这些是bash程序员常用的方法,还是我没有考虑其他方法?

只是扩展了您问题中的想法:

true
/
false
命令
bool=true
如果$bool;然后是回音Y;else-echon;fi#=>Y
字符串值
bool=“是”
如果[$bool==“是”];然后是回音Y;else-echon;fi#=>Y
弦空
bool=“”
如果[[$bool]];然后是回音Y;else-echon;fi#=>N
零/非零整数
bool=0
如果((bool));然后是回音Y;else-echon;fi#=>N

还有一个表单使用:

((bool))和&echo Y||echo N
您必须小心使用
a和&B|C
——如果aB失败,C将执行

如果是,则使用
;然后B;其他C;fi
C运行的唯一时间是A失败,而不管B发生什么情况

给定

A(){echo A;}
B(){echo B;返回1;}
C(){echo C;}
然后

$A&B|C
A.
B
C
$if A;然后B;其他C;fi
A.
B

这是否回答了您的问题?请注意,true和false是内置命令,因此使用它们不会造成性能损失。这是一个社区wiki答案,因此可以随意添加任何其他方法。