他のスクリプトで環境変数を設定するには?

他のスクリプトで環境変数を設定するには?

WORKSPACE="$(git rev-parse --show-toplevel)"特定のタスクなどのエイリアスを作成できるように、~/.bashrc本質的にgitリポジトリのルートに設定される変数を設定しました。$WORKSPACEbuilding an imagegoing to my component directory in the repo

これで、指定されたディレクトリ名と分岐名を使用して新しいgit作業ツリーを生成するbashシェルスクリプトを作成しました。私のスクリプト構文は次のとおりです - my_script -c <branch_name> -d <directory_name>

これで問題は、新しい作業ツリーを作成した後、$WORKSPACE新しく作成されたgit作業ツリーのディレクトリ名に変数を設定する必要があることです。

現在私はやっている -

cd $DIR -> which is `directory_name`
WORKSPACE="$(git rev-parse --show-toplevel)"

しかし、これは役に立ちません。なぜなら、 . の設定値は$WORKSPACE(スクリプトがトリガされる) 対話型 bash シェルではなく、スクリプトが実行される非対話型セッションに適用されるからです。したがって、イメージを構築するためにエイリアスをトリガーすると、新しく作成された作業ツリーディレクトリのコンテキストではトリガーされません。

この問題をどのように解決できますか?

答え1

git コマンドの新しい値を取得するディレクトリで、次の行を実行します。 git rev-parse --show-toplevel > ~/tmpfile

次に、これを次の項目に追加します.bashrcWORKPLACE=$(cat ~/tmpfile)

いよいよ逃げたsource ~/.bashrc

これで、ファイルシステムのどこからでも更新された値としてWORKPLACEを参照できます。

tmpfile場所は簡単に管理できますが、.bashrc場所も必ず指定してください。

関連情報