如果我有这样的bash脚本:
some_command
. some_bash
看起来是这样的:
if [ "$?" != "0" ]
then
do_something
else
do_something_else
fi
我预计,
some_bash
在父环境(some_bash
)中执行,将得到父级.
的退出状态($?
)。但它不是。我猜想它正在获得一个成功地调用它自己的退出状态,这总是正确的。除了
some_command
和some_bash $?
,还有什么方法可以绕过这个问题吗? 最佳答案
考虑将值传递给命令:
some_command
. some_bash "$?"
if [[ $1 -ne 0 ]]; then
尽管它将替换当前存在的任何位置参数。