这两者有什么区别?
使用&&
和||
:
command1 && command2 || command3
使用if
和else
:
if command1
then
command2
else
command3
fi
答案 0 :(得分:4)
后者将始终直观地正确工作。前者具有可以执行command2
和command3
的边界条件。
答案 1 :(得分:2)
在第一个例子中,如果command1或command2失败,将执行command3:如果command1通过但command2失败,则执行command3。在if-then-else示例中,command3仅在command1失败时执行。
换句话说,第一个,当翻译成if-then-else时变为:
if command1
then
if !command2
then
command3
fi
else
command3
fi
使用command1 = true,command2 = false和command3 = echo'thing',您可以看到差异。 &&-||
版本:
true && false || echo 'something'
将产生something
作为输出。使用if-then-else
版本时:
if true
then
false
else
echo 'something'
fi
你没有输出。