左から右へ?あるいはその逆も?
例:
If [! -z "$ foo"] && [$ foo2 -eq 0]; then
echo "something"
fi
どの評価を最初にすべきですか?
[! -z "$ foo"]
または
[$ foo2 -eq 0]
ありがとうございます!
ベストアンサー1
シェルスクリプトでは、次のように言います。
if [ ! -z "$foo" ] && [ "$foo2" -eq 0 ]; then
echo 'something'
fi
最初のテスト[ ! -z "$foo" ]
(可能な限り作成[ -n "$foo" ]
)が最初に実行されます。 2回目のテストはただ最初のテストが成功すると実行されます。もし両方テストが成功します。つまり、$foo
値がnullではなく、$foo2
算術値が0の場合にecho
実行されます。
この&&
演算子は、他の言語の同様の演算子のように動作します。シェルの実装段落評価&&
左側が次の場合、右側のみが評価されます。本物。
このif
特定の文は、次のようにキーワードを使用せずに作成することもできますif
。
[ ! -z "$foo" ] && [ "$foo2" -eq 0 ] && echo 'something'
if ...; then ...; fi
IMHOを使用する方が明確ですが。
繰り返しますが、これはecho
次の場合にのみ実行されます。両方以前のテストは成功しました。