gpt4 book ai didi

bash:退出源脚本

转载 作者:行者123 更新时间:2023-11-29 09:05:16 26 4
gpt4 key购买 nike

我的 bash 脚本使用了很多检查,例如:

if [ something bad ] ; then
echo "error message"
exit 1
fi

我发现如果用户通过 source my-script.sh 而不是 ./my-script.sh 执行它,这个 exit 1 关闭用户的外壳!并且用户看不到任何错误消息!

我怎么知道脚本是源代码,我如何退出(使用非零状态代码)源脚本?一般来说,我该怎么办?

最佳答案

这似乎有两个部分。第一个是了解您何时在 sourced 脚本中执行而不是已执行的脚本。可以在 this 中找到回答,对于 bash,他们建议:

[[ "$0" != "$BASH_SOURCE" ]] && sourced=1 || sourced=0

判断您是否被采购。

如果您正在寻找来源,您会希望使用 return 而不是 exit

您可以将该函数存储在变量中,例如

if [[ $sourced -eq 1 ]]; then
ret=return
else
ret=exit
fi

然后当你想使用合适的时候你就可以使用

$ret 1

关于bash:退出源脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com