これら2つの違いは何ですか?
&&
と の使用||
:command1 && command2 || command3
if
と の使用else
:if command1 then command2 else command3 fi
これら2つの違いは何ですか?
&&
と の使用||
:
command1 && command2 || command3
if
と の使用else
:
if command1
then
command2
else
command3
fi
最初の例では、command1 または command2 のいずれかが失敗した場合、command3 が実行されます。command1 が成功したが、command2 が失敗した場合、command3 が実行されます。if-then-else の例では、command1 が失敗した場合にのみ command3 が実行されます。
つまり、最初のものを if-then-else に変換すると、次のようになります。
if command1
then
if !command2
then
command3
fi
else
command3
fi
command1=true、command2=false、および command3=echo 'something' を使用すると、違いがわかります。&&-||
バージョン:
true && false || echo 'something'
出力として得something
られます。if-then-else
バージョンを使用する場合:
if true
then
false
else
echo 'something'
fi
出力はありません。