在 shell 脚本中使用比较运算符打破长行

在 shell 脚本中使用比较运算符打破长行

在我的 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。

相关内容