首先我不是Bash专业版。我几个月前发现,如果我使用带花括号的短路操作符&&
和||
,那么如果第一条语句以真值存在,如果真块中的最后一条语句退出非零,那么失败块也将被执行。就像这样:了解Bash短路
returnNumber 0 && {
echo 'OK'
returnNumber 1
} || {
echo 'NG'
}
将输出:
OK
NG
于是,我找了这个最简单的解决方案,以及与此想出了:
returnNumber 0 && {
echo 'OK'
returnNumber 1
:
} || {
echo 'NG'
}
我知道,这是很容易忽略内置结肠,但它是一种解决方法的正确方法?
不要运动了使用特殊的语法。当你只写'if-then-else-fi'时,大多数人都会理解。 尝试考虑有效的例外情况。我仍然不确定我的答案http://stackoverflow.com/a/28478184/3220113:它是有效的,但很难阅读。 –