【问题标题】:Can a bash script distinguish between being called as a script and being run as a "source"? [duplicate]bash 脚本可以区分作为脚本调用和作为“源”运行吗? [复制]
【发布时间】:2020-02-17 15:59:16
【问题描述】:

我有一个 bash 脚本,里面有:

exit 1

当我“获取”这个脚本而不是运行它时,它会导致调用者退出。

脚本是否可以确定它是使用“源”而不是作为其脚本运行的?

【问题讨论】:

标签: bash


【解决方案1】:

您可以在脚本中使用此检查:

[[ $0 = $BASH_SOURCE ]] && echo "normal run" || echo "sourced run"

或者在您呼叫exit的任何地方使用if/else/fi

if [[ $0 = $BASH_SOURCE ]]; then
   exit 1
else
   # don't call exit
   echo "some error..."
fi

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 2010-11-28
    • 2012-09-15
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多