使用 .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

當您執行腳本時,它在子 shell 中運行,一旦(子)shell 退出,導出的所有參數都將超出範圍,不會影響父 shell。

當您source這樣做時,參數將在呼叫會話中可用。以及您正在export使用的子進程。


sh請注意, Ubuntu 的預設系統 shell ( ) 是dash,而bash不是作為互動式 shellgnome-terminal產生。bash執行時,請確保 shebang 正確並且是所需的。另外,當source-ing時,不需要shebang,你可以把它放下。

相關內容