有什么好的 POSIX 兼容方法可以使脚本既可执行文件(脚本中的函数被执行)和内源性使用.
命令(除了(至少)1个功能变得可用之外什么也没有发生?
我试过了:
src.sh:
#!/bin/sh -eu
FILENAME=src.sh
f() { echo hello from f; }
case $0 in ($FILENAME|*/$FILENAME) f "$@";; esac
然后用以下方法测试它:
( PATH=$PWD:$PATH; src.sh; . src.sh ; echo ===; f )
这似乎在 Cygwin、MacOS 和 Linux 上按预期工作。
关于如何改进它有什么建议吗?