.bashrc
で変数を設定する場合、これを使用する必要がありますか?
export VAR=value
それともこれで十分でしょうか?
VAR=value
正確な違いは何ですか(ある場合)?
export VAR=value
している
VAR=value
スクリプトの実行中にのみ変数を設定します(この場合は.bashrc
)。スクリプトの子プロセス(存在する場合)にはVARが定義されておらず、スクリプトが終了するとVAR
はなくなります。
export VAR=value
子プロセスに渡される変数のリストにVAR
を明示的に追加します。やってみませんか?シェルを開いて
PS1="foo > "
bash --norc
新しいシェルはデフォルトのプロンプトを取得します。代わりにあなたが次のようなことをするなら
export PS1="foo > "
bash --norc
新しいシェルは設定したプロンプトを取得します。
pdate:.bashrc
で設定された変数の下でIan Kellingが注記しているように、.bashrc
をソースとしたシェルで永続化します。より一般的には、シェルがスクリプトをソースするときはいつでも(source scriptname
コマンドを使用して)、スクリプトに設定された変数はシェルの存続期間中持続します。
どちらも問題なく動作するようですが、エクスポートを使用すると、変数がサブシェルや他のプログラムで使用できるようになります。これをテストするには、これを試してください。
これらの2行を.bashrcファイルに追加します
TESTVAR="no export"
export MYTESTVAR="with export"
次に、新しいシェルを開きます。
ランニング echo $TESTVAR
およびecho $MYTESTVAR
は、各変数の内容を表示します。同じシェル内で、.bashrcファイルからこれらの2行を削除し、bash
を実行してサブシェルを開始します。
ランニング echo $TESTVAR
は空の出力になりますが、実行中のecho $MYTESTVAR
は「エクスポートあり」を表示します