我有一个脚本,exit如果它被采购我不希望它调用.
我想过检查是否$0 == bash但如果脚本来自另一个脚本,或者如果用户从不同的shell中获取它,则会出现问题ksh.
是否有可靠的方法来检测脚本是否来源?
我的bash脚本使用了很多检查,例如:
if [ something bad ] ; then
echo "error message"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
我发现,如果用户通过执行它source my-script.sh,而不是./my-script.sh,这exit 1 将关闭用户的shell!
并且用户看不到任何错误消息!
我如何知道脚本是source-d,如何退出(使用非零状态代码)source-d脚本?一般来说,我该怎么办呢?