不确定这是否是最佳选择(如果脚本与 shell 同名,则不起作用),但您可以检查第一个参数 ( $0
)。例子:
$ cat test.sh
#!/bin/ash
echo "Value: $0"
$ ./test.sh
Value: ./test.sh
$ source test.sh
Value: ash
如果要检查文件是否来源,可以使用以下内容:
#!/bin/ash
case $0 in
ash) echo "Sourced" ;;
*) echo "Not sourced" ;;
esac