Amazon Linux 2を実行しているEC2インスタンスで永続的な環境変数を設定するためにいくつかの方法を試しましたが、どちらもユーザーとログインセッション全体にわたって持続しません。
すべてのセッション中にすべてのユーザーが変数値を使用できるように環境変数を正常に設定できる具体的な構文と手順は何ですか?
これまで試した操作には、インスタンスの USERDATA 起動スクリプト中に次の 3 つのファイルのそれぞれに値を設定する作業が含まれていました。
/etc/csh.cshrc
/etc/environment
/etc/profile
3つのファイルを同時に試すのではなく、各ファイルを一度に1つずつ試してください。
Pythonを使ってみましたが、os.environ
やはり動作しませんでした。
ユーザーの提案
@NasirRileyの提案に従って、ファイルを生成してインスタンスの起動シーケンス中にsetVars.sh
置くと機能します。 /etc/profile.d
USERDATA
#!/bin/bash
export SOME_VAR_NAME=some-var-value
答え1
渡すのが最善です/etc/profile.d
。
シェル名の拡張子を使用して作成しようとしています。たとえば、 examplebash
がscript.sh
呼び出されます。
/etc/profile.d/script.sh
内部構文は次のとおりです。
export SOME_VAR_NAME=some-var-value
環境に変数を追加するには、新しいシェルセッションを開始する必要があり、ログアウトして再度ログインします。他のユーザーが同じ操作を実行するか、次にログインすると(その場合)、その変数が他のユーザーの環境に追加されます。まだログインしていません。
注:シェルに基づいて得られるshebangラインは実際には必要ありません。ただ習慣の力なので、時々自分で塗ったりもしますが、何も病気や影響を与えません。必要に応じて省略してください。
答え2
ただ添付してください~/.bash_profilefile を
選択し、変更を有効(実行)します。
echo "export YOUR_ENV_VAR_NAME=your_env_var_value" >> ~/.bash_profile && \
source ~/.bash_profile