【发布时间】:2020-02-17 15:59:16
【问题描述】:
我有一个 bash 脚本,里面有:
exit 1
当我“获取”这个脚本而不是运行它时,它会导致调用者退出。
脚本是否可以确定它是使用“源”而不是作为其脚本运行的?
【问题讨论】:
标签: bash
我有一个 bash 脚本,里面有:
exit 1
当我“获取”这个脚本而不是运行它时,它会导致调用者退出。
脚本是否可以确定它是使用“源”而不是作为其脚本运行的?
【问题讨论】:
标签: bash
您可以在脚本中使用此检查:
[[ $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
【讨论】: