代码之家  ›  专栏  ›  技术社区  ›  vy32

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

  •  2
  • vy32  · 技术社区  · 5 年前

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

    exit 1
    

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

    3 回复  |  直到 5 年前
        1
  •  6
  •   anubhava    5 年前

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

    [[ $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