是否有一个简洁,通用,惯用的bash结构,当它调用错误的子shell时会强制语句出错?例如,
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!'
答案 0 :(得分:1)
这不是一般的解决方案,但在那个例子中你可以做到:
cd $(git rev-parse --show-toplevel || echo -@) && echo 'Success!'
如果替换中的命令失败,此解决方案将输出转换为命令将不接受的内容。