답변:
이것은 SO 에 대해 논의되었습니다 . @barroyo로 가장 upvoted 대답은 사용에 말한다
[[ "${BASH_SOURCE[0]}" != "${0}" ]] && echo "script ${BASH_SOURCE[0]} is being sourced ..."
커스텀 인터프리터 만들기 source_reminder:
#!/bin/sh
printf "%s\n" "Source me!" >&2
exit 1
실행 가능하게 만드는 것을 잊지 마십시오. 그런 다음 스크립트에서 사용하십시오.
#!/path/to/your/source_reminder
foo
bar
whatever
이제 소싱하지 않고 스크립트를 실행하면 알림이 해당 작업을 수행합니다.
#!/bin/echo do not execute또는 #!/bin/false나 #!/usr/bin/awk BEGIN { print "you must source " ARGV[1]; exit(1) }. 그러나 이것은 스크립트가 sh scriptShebang을 무시하기 때문에 다음과 같이 실행되는 경우를 포착하지 않습니다 .