web-dev-qa-db-ja.com

.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ファイルを実行しても、環境変数はエクスポートされません。それらをエクスポートするには、各行を手動で実行する必要があります。助けてください

7

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

. env.sh

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

sourceすると、パラメーターは呼び出しセッションで使用できるようになります。そして、あなたがそれらをexport- ingしているときの子プロセスについても。


Ubuntuのデフォルトのシステムシェル(sh)はdashではなくbashであり、gnome-terminalはインタラクティブシェルとしてbashを生成することに注意してください。実行中は、シバンが正しいこと、および目的のものであることを確認してください。また、source- ingを実行している間、シバンは不要です。ドロップできます。

13
heemayl