在 RHEL 6.7 上,我添加了文件 /etc/environment:
JAVA_HOME="/opt/jdk1.8.0_91"
JRE_HOME="{JAVA_HOME}/jre"
M2_HOME="/usr/local/apache-maven"
M2="{M2_HOME}/bin"
PATH="{JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}"
现在登录时,bash 出现以下错误:
-bash: id: command not found
-bash: id: command not found
-bash: id: command not found
-bash: uname: command not found
删除或重命名 /etc/environment 可以解决该问题。
注意:我不想使用 /etc/profile,因为我希望这些设置可用于非交互式 shell。
答案1
/etc/environment
不执行变量扩展。因此,您的PATH
现在实际上是{JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}
,这当然不起作用。
如果仅使用bash
,您可能需要研究如下$BASH_ENV
设置:/etc/environment
BASH_ENV=/etc/non-inter-test
然后,非交互式 shell 会读取并执行where /etc/non-inter-test
(并且只能由非交互式 shell 读取和执行,因此您必须在交互式 shell 中引用相同的文件/etc/profile
),并且可能包含现在您的/etc/environment
.