这两者有什么区别?
使用
&&
和||
:command1 && command2 || command3
使用
if
和else
:if command1 then command2 else command3 fi
这两者有什么区别?
使用&&
和||
:
command1 && command2 || command3
使用if
和else
:
if command1
then
command2
else
command3
fi
后者将始终直观地正常工作。前者有一个边界条件,两者command2
都command3
可以执行。
在第一个示例中,如果 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
你将没有输出。