我有一个脚本,我不希望它调用 exit
如果它是来源。
我想检查是否$0 == bash
但是如果脚本来自另一个脚本,或者如果用户从不同的 shell 中获取它,比如 ksh
,这就会出现问题。 .
是否有一种可靠的方法来检测脚本是否正在获取?
最佳答案
这似乎可以在 Bash 和 Korn 之间移植:
[[ $_ != $0 ]] && echo "Script is being sourced" || echo "Script is a subshell"
与此类似的行或类似
pathname="$_"
的分配(带有稍后的测试和操作)必须在脚本的第一行或在shebang 之后的行(如果使用,应该用于ksh,以便在大多数情况下工作)。
关于bash - 如何检测脚本是否正在获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683279/