
サードパーティのシェルスクリプトで環境変数の値を更新しようとしています。私のオペレーティングシステムは、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_HOME
JAVA_HOME
PATH=$JAVA_HOME:$PATH
JAVA_HOME
/etc/bashrc
JAVA_HOME