使用 .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,你可以把它放下。

相关内容