回答:
これは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 script
(これはシバンを無視するため)。