POSIX 쉘 언어로 된 소스 가능/실행 가능 쉘 스크립트

POSIX 쉘 언어로 된 소스 가능/실행 가능 쉘 스크립트

스크립트를 둘 다 만드는 좋은 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에서 예상대로 작동하는 것 같습니다.

개선 방법에 대한 제안이 있으십니까?

관련 정보