私の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と評価されることをお勧めします。