首先我不是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:它是有效的,但很難閱讀。 –