【发布时间】:2013-08-14 07:08:57
【问题描述】:
在 bash 中,我想传播在别名中执行的特定命令的退出代码,以便别名调用本身会返回它(与它一起退出)。
想象一下下面的例子(请注意:命令没有意义,只是演示了我面临的问题):
alias cda='cd \/a; exit_code=$?; echo "STATUS: $exit_code"; alias cdb='cd \/b'
cda && cdb
对我来说,没有这样的目录:/a 和 /b 以确保命令失败。
我只想在cda 别名执行成功的情况下执行cdb 别名。但是,由于echo 是最后一个命令,它以exit 状态结束0 => 两者都被执行
我试过的是:
alias cda='cd \/a; exit_code=$?; echo "STATUS: $exit_code"; exit $exit_code'; alias cdb='cd \/b'
cda && cdb
但是这完全退出了 shell => 对我来说不可行。
知道如何将退出状态(在我的情况下为 $exit_code)传播为别名退出状态吗?
【问题讨论】: