如果其子外壳错误导致bash语句出错

如果其子外壳错误导致bash语句出错

问题描述:

是否有一个简洁的,通用的,惯用的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'是一种方法。 –

这不是很普遍的解决方案,但在例如,你可以这样做:

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

该解决方案将输出转换为命令在替换命令失败时不会接受的内容。