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