我創建了 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,你可以把它放下。