source
特定のシェルに対してファイルを一度だけインポートする同様のbashコマンドはありますか?
たとえば、
source_cached foo.sh # runs as normal
source_cached foo.sh # would not load foo.sh a second time
foo.shパスはすでにインポートされているため、再インポートされません。
答え1
欲しいのは「Include Guard」です。 Jonathan LefflerのサイトでSOの例を見ることができます。https://stackoverflow.com/a/7518684/6512983。
if [ -z "$B_SH_INCLUDED" ]
then
B_SH_INCLUDED=yes
...rest of original contents of b.sh
fi
デフォルトでは、インクルードファイルに変数を定義しますが、変数があるかどうかを事前に確認し、すでに定義されている場合は早く返します。