環境変数を含む単一のファイルを使用するときに考慮すべきことは何ですか?
私が望むのは、必要な~/.env
すべての宣言やPATH
その他の非機密環境変数を含むファイル(たとえば)を生成することです。そのファイルは、各シェルごとのドットファイルに由来します。EDITOR
GOPATH
特に、次の行を含めたいです。
. "$HOME/.env"
すべて ,,,,,,.profile
.bash_profile
.bashrc
.zprofile
.zshenv
.zshrc
目標は、対話型/非対話型およびログイン/非ログインシェルで実行されるコマンドの一貫した動作です。
私はなぜこれをしたくないのですか?その結果、問題が発生しますか?
SEでは、このトピックに関する多くの回答を読んでいます。
https://superuser.com/a/187673/924981
https://askubuntu.com/a/540689
https://askubuntu.com/a/866240
https://stackoverflow.com/q/14637979/3885799
env宣言のいくつかの推奨事例を理解します。しかし、上記の方法も許容可能で安全であるかどうかを知りたいです。
ベストアンサー1
唯一の問題は、からファイルをインポートし、これらの2つが互いにファイルをインポートする場合(他のシェルでも同様)、シェルセッションを開始すると環境ファイルを複数回(2回)取得できること.bash_profile
です.bashrc
。
そうでなければ、これは問題ではありません追加/プレフィックス環境変数の値です。
env_sourced
シェル変数(ファイルの一部の値など)を設定し、一番上でテストしてこれを防ぐことができます。
# My environment file
[ -n "$env_sourced" ] && return
env_sourced=1
PATH="$PATH:/some/path"
# etc.