bash脚本能否区分被称为脚本和作为“源”运行?

时间:2019-10-21 14:24:49

标签: bash

我里面有一个bash脚本:

exit 1

当我“获取”该脚本而不是运行它时,它将导致调用方退出。

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

1 个答案:

答案 0 :(得分:6)

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

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

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

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