.sh ファイルで環境変数を設定する

.sh ファイルで環境変数を設定する

env.shファイルを作成しました。内容は以下の通りです。

#!/bin/sh

export M2_HOME=/vagrant/tools/maven
export PATH=$PATH:$M2_HOME/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.7
export MAVEN_HOME=$M2_HOME

しかし、このshファイルを実行しても、環境変数はエクスポートされません。エクスポートするには、各行を手動で実行する必要があります。助けてください

答え1

ファイルを実行するのではなく、source( )する必要があります:.

. env.sh

スクリプトを実行すると、サブシェルで実行され、(サブ)シェルが終了するとエクスポートされたすべてのパラメータはスコープ外となり、親シェルには影響しません。

これを実行するとsource、呼び出しセッションでパラメータが使用可能になります。また、呼び出し元の子プロセスでもパラメータが使用可能になりますexport


shUbuntu のデフォルトのシステム シェル ( ) はでありdashbashは対話型シェルとしてgnome-terminal起動されないことに注意してくださいbash。実行中に、シェバンが正しいこと、および希望するものであることを確認してください。またsource、 -ing 中にシェバンは必要ないので、削除できます。

関連情報