ソースファイルから取得したすべての変数をエクスポートできますか?

ソースファイルから取得したすべての変数をエクスポートできますか?

2つの変数を設定するというファイルがあるとしましょうvariables.sh

foo=bar
bar=foo

このファイルを作成すると、source現在のシェルでこれらの変数を使用できますが、2番目のシェルスクリプトで使用するにはその変数をエクスポートする必要があるため、ファイルは次のようになります。

export foo=bar
export bar=foo

sourceどのような+を実行することは可能ですか?exportそれとも、各変数を設定する前に+になるように変更する必要がありますかvariables.shexport

ベストアンサー1

2番目のシェルスクリプトでそれを使用するにはエクスポートする必要があるため、ファイルは次のようになります。

2番目のファイルを取得または取得できますvariables.sh。ファイル処理の結果を評価するなど、操作を実行する方法はいくつかありますが、最もきれいな方法はset -abashシェルを使用することです。

          -a      Automatically  mark  variables  and  functions which are
                  modified or created for export  to  the  environment  of
                  subsequent commands.

したがって、次のことで目標を達成できます。

set -a
source variables.sh

指摘したとおりl0b0set +a後続のシェルコードから自動的に変数をエクスポートしないように、後でこれを行うことができます。

おすすめ記事