| 記述式 | 説明 | |
|---|---|---|
| A | if [ -n “$str” -a -f “$file” ] | 1つの testコマンド、2つの条件 |
| B | if [ -n “$str” ] && [ -f “$file” ] | 2つの testコマンド(短絡評価される) |
| C | if [ -n “$str” && -f “$file” ] | 構文エラー |
A は、2つの条件が両方とも判定される。
B は、最初の条件が true の場合のみ、2つ目の条件が判定される。
C は、2つ目の処理中に -f というコマンドは存在しないというエラーが発生する。
if some_command
then
command_a
command_b
command_c
fi
some_command && {
command_a
command_b
command_c
}
{ と } のブロックはコマンドをステートメント化する役割がある