関数を含むファイルがあり、foo
次のフローがある場合、スクリプト
Aはをsources
含めてfoo
呼び出しますfoo
。
次に、foo
2番目のスクリプトも同じファイルをソースとして使用します。
2番目のスクリプトで条件付きでファイルをインポートする方法があるかどうか疑問に思います。それとも影響がなく、このアプローチは一般的ですか?
ベストアンサー1
スクリプトAが別のものを実行している場合、プログラムは関数定義を継承しません。 Bashには、環境を介して関数をエクスポートするためのあいまいな機能があります。これは実装にバグが現れるまでほとんど知られていません。必要に応じてエクスポートされた関数を使用できますが、export -f
環境に存在する関数に依存するのではなく、使用したい関数のみを定義する方が良いでしょう。