2015-07-11 86 views
2

是否有一個簡潔的,通用的,慣用的bash結構,當子shell調用錯誤時會強制語句發生錯誤?例如,如果其子外殼錯誤導致bash語句出錯

cd $(git rev-parse --show-toplevel) 

都會不約而同地返回0即使git指揮失誤,這使得它很難腳本像

cd $(git rev-parse --show-toplevel) && echo 'Success!' 

當然,你可以做以下,但我在想,如果有一個更好的辦法:

DIR=$(git rev-parse --show-toplevel) && cd $DIR && echo 'Success!' 
+5

'set -e'是一種方法。 –

回答

1

這不是很普遍的解決方案,但在例如,你可以這樣做:

cd $(git rev-parse --show-toplevel || echo [email protected]) && echo 'Success!' 

該解決方案將輸出轉換爲命令在替換命令失敗時不會接受的內容。