シェルスクリプトで環境変数を更新する

シェルスクリプトで環境変数を更新する

サードパーティのシェルスクリプトで環境変数の値を更新しようとしています。私のオペレーティングシステムは、Oracle Linux Serverバージョン6.4(Red Hat Enterprise Linux Serverバージョン6.4(San Diego))です。

/etc/bashrc(すべてのユーザーに対して)次の環境変数を定義しました。

JAVA_HOME=/opt/java/jdk1.8.0_45
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export JAVA_HOME
export PATH

私のシェルスクリプトの1つに別のjdkインストールを使用したいと思います。だから、次の行を追加しました。customscript.sh

JAVA_HOME=/opt/java/jdk1.7.0_79
export JAVA_HOME
echo "PATH variable is $PATH"
...                      #other script code

customscript.shはまだ古い環境変数の値をデフォルト値として使用しますPATH。上記のechoコマンドの出力は、まだ以前のJAVA_HOME変数値を参照していることを示しています。

私は何を見逃していますか?

答え1

/etc/bashrcその時の値を解析して設定します。後で変更しても再解釈されません。サードパーティのシェルスクリプトに1.8より前のパスに1.7を追加するには、次の行を追加する必要があります。PATH$JAVA_HOMEJAVA_HOMEPATH=$JAVA_HOME:$PATHJAVA_HOME/etc/bashrcJAVA_HOME

関連情報