我有两个 shell 脚本,比如 script1.sh 和 script2.sh。我从 script1.sh 调用 script2.sh。在 script2.sh 中完成了一些评估,并根据结果设置了一个标志。现在我需要将标志传递给 script1.sh,根据它将决定 script1.sh 是否应该继续执行或退出。我没有使用函数。当我导出标志时,在 script1.sh 中它是空白的。
我现在的问题是如何从 script2.sh 返回标志?
有什么帮助吗?有任何想法吗?经验分享?
问问题
6985 次
3 回答
3
您可以打印结果并在 script1 中捕获它:
# Script 1
flag="$(./script2.bash)"
和:
# Script 2
[...]
printf '%s\n' "$flag"
希望这会有所帮助=)
于 2012-10-17T14:08:50.440 回答
2
只需使用 script2 的退出状态:
if script2.sh ; then
echo Exited with zero value
else
echo Exited with non zero
fi
在 script2 中使用exit 0
or来设置标志。exit 1
于 2012-10-17T14:10:05.833 回答
1
我希望您使用script2.sh
(se by the statement exit {value}
)的返回码
例如
./script2.sh
$?
包含来自script2.sh
退出语句的返回值。
你不能export
在这里使用。export
使变量可用于后续子流程。它不能用于将值传递回父进程,因为您正在修改特定于子进程的变量的副本。
于 2012-10-17T14:08:06.557 回答