在我的 bash 代码中,有时我在比较运算符中使用长参数来测试“OR”
如下:
if [[ $production_check_linux_disks_quantity == false ]] || [[ $production_linux_mount_point_reference_to_ambari_definition == false ]] || [[ $production_check_linux_mount_point_quantity == false ]] || [[ $production_show_linux_disks_simulation == false ]]
then
问题是语法太长而且难看
有什么想法如何让它更短、更优雅吗?
答案1
您可以打破 上的线路||
。事实上,你可以随时打破这条线控制操作员。因此,在||
、!
、&&
、&
、;
、;;
、|
、|&
、(
、 或中的任何一个处)
。
对于您的示例来说,这是正确的语法,例如,不需要\
:
if [[ $production_check_linux_disks_quantity == false ]] ||
[[ $production_linux_mount_point_reference_to_ambari_definition == false ]] ||
[[ $production_check_linux_mount_point_quantity == false ]] ||
[[ $production_show_linux_disks_simulation == false ]]; then
echo yes
fi
\
如果多条线不以控制运算符结尾,则确实需要连接它们,但当它们以控制运算符结尾时则不需要。
另外,请注意,if [[ $var == false ]]
正在检查变量的值是否$var
为字符串false
,并且最好写为if [[ $var = 'false' ]]
。您的代码表明您可能希望它在$var
-1 或 0 或未设置等情况下评估为 true。