環境変数を追加するにはどうしたらいいですか?
私はUbuntu 11.04を使用しています。ターミナルを使ってbashセッションを開始し、環境変数を追加したいと思っています。
$r@hajt:~$ env THEVAR=/example
しかし、これがうまくいきません。すべての変数が表示され、THEVARが最後に表示されますが、env
を再度呼び出してもTHEVAR
はもう表示されません-env | grep THEVAR
は何も返しません。
同様に、export (export THEVAR=/example
) や他の変数の割り当て (THEVAR=/example
) を行ったスクリプトでは、環境変数が追加されません。
何か間違ったことをしているのはわかっていますし、簡単なことのはずなのですが、どうしてもそれがわかりません。
UPDATEです。 私の質問の本当の意味は、この質問でした。https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell
(とりあえず、最も投票された回答を選び、編集されたタイトルはそのままにしておきます。これは私が聞きたかったことではありません)
env` は、変更された環境でプログラムを実行し、その後、変更をすべて解除します。
380
3
現在のシェルにのみ変数を設定します。
現在のシェルと、現在のシェルから起動したすべてのプロセスに設定するには、次のようにします。
今後のすべてのbashセッションで永続的に設定するには、
$HOME
ディレクトリの.bashrc
ファイルにこのような行を追加します。恒久的にシステム全体(すべてのユーザー、すべてのプロセス)に設定するには、/etc/environmentにset変数を追加します。
このファイルは、次のような変数の割り当てしか受け付けません。
ここでは
export
キーワードを使用しないでください。環境変数の変更が行われるためには、現在のユーザーからログアウトし、再度ログインする必要があります。
環境変数を一度だけ設定するには、シェルスクリプトではなくプロンプトで
export
コマンドを使用します。この変数は、シェルセッションの残りの期間、または設定が解除されるまで設定されます。
環境変数を毎回設定するには、
.bashrc
ファイル(またはシェルの適切な初期化ファイル)でexport
コマンドを使用します。スクリプトから環境変数を設定するには、スクリプトの中で
export
コマンドを使用し、スクリプトをsource
します。スクリプトを実行しても動作しません。ソースと実行の違いについての説明は、この回答を参照してください: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788
Ubuntuで新しい環境変数を恒久的に追加するには(14.04でのみテスト済み)、以下の手順で行います。
1.ターミナルを開く(CtrlAltT を押す)。 2.2. 「sudo -H gedit /etc/environment」を実行する。 3.パスワードを入力する 4.開いたばかりのテキストファイルを編集します。 例:
FOO=bar
を追加したい場合は、FOO=bar
と改行してください。 5.5. ファイルを保存する 8.保存したら、一度ログアウトして、再度ログインしてください。 9.必要な変更が行われます。