加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash:退出source-d脚本

发布时间:2020-12-15 21:39:30 所属栏目:安全 来源:网络整理
导读:我的bash脚本使用了很多检查,例如: if [ something bad ] ; then echo "error message" exit 1fi 我发现如果用户通过源my-script.sh而不是./my-script.sh执行它,则此退出1将关闭用户的shell! 并且用户看不到任何错误消息! 我如何知道脚本是source-d,如何
我的bash脚本使用了很多检查,例如:

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

我发现如果用户通过源my-script.sh而不是./my-script.sh执行它,则此退出1将关闭用户的shell!
并且用户看不到任何错误消息!

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

解决方法

似乎可能有2个部分.第一个是知道何时在源脚本中执行而不是执行脚本.这可以在 this答案中找到,对于bash他们建议:

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

判断你是否被采购.

如果您的来源,您想要使用return而不是exit.

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

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

然后当你想使用你刚才使用的合适的那个时

$ret 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读