从子shell脚本中的函数退出到父shell脚本

时间:2014-03-26 11:00:14

标签: bash shell

我正在使用bash脚本,我正在尝试从子shell脚本中的函数退出到返回状态代码的父shell脚本。

Script1.sh
echo "hello script1"
. ./script2.sh
echo $?

Script2.sh
status()
{
    echo "status"
    return 1
}
status
echo "Hello shell2"

此脚本打印“status”和“Hello shell2”,但我想从script2.sh的状态函数退出到script1.sh而不打印“Hello shell2”。

我已经检查了堆栈中的一些问题溢出那些关于从子脚本返回父级而不是从子级到父级的函数的讨论。

先谢谢, 索曼

1 个答案:

答案 0 :(得分:3)

您无法指定多少级别" up"要返回,但您可以响应呼叫的退出状态。只需让status按照目前的状态返回,并且由于您要获取文件,请将调用更改为status

status || return

如果status具有非零退出状态,这将导致源脚本返回到父级。