【发布时间】:2016-06-14 05:22:52
【问题描述】:
首先,我不是 Bash 专业人士。几个月前我发现,如果我将&& 和|| 短路运算符按顺序与花括号一起使用,那么如果第一个语句以真实值退出,如果真块中的最后一个语句退出非零,那么失败块也将被执行。像这样:
returnNumber 0 && {
echo 'OK'
returnNumber 1
} || {
echo 'NG'
}
将输出:
OK
NG
所以,我为此寻找了最简单的解决方案,并想出了这个:
returnNumber 0 && {
echo 'OK'
returnNumber 1
:
} || {
echo 'NG'
}
我知道,省略内置冒号很容易,但它是解决方法的正确方法吗?
【问题讨论】:
-
不要把使用特殊语法作为一项运动。当您只写
if-then-else-fi时,大多数人都会理解。尝试考虑有效的例外情况。我仍然不确定我的答案stackoverflow.com/a/28478184/3220113:它有效但难以阅读。 -
这个上下文中的大括号是什么语法?
标签: linux bash short-circuiting