/etc/environment 导出路径

/etc/environment 导出路径

我有以下/etc/environment:

export PATH=$PATH

每当我登录时都会出现以下错误:

-bash: id: command not found
-bash: tty: command not found

我究竟做错了什么?

(我的实际 /etc/enviroment 更复杂,并将 java 设置到路径上,但为了简单起见,我甚至无法使上述操作正常工作)

我正在使用 Centos6

答案1

我认为更简洁的方法是使用/etc/profile.dover中的条目/etc/environment,但您能回显 $PATH 的输出吗?这可能是真正的问题。或者至少显示复杂环境文件的详细信息。

答案2

您误解了/etc/environment语法。它不会被解释为一系列 shell 命令,因此它根本不是一个.sh文件。/etc/environment当 shell 尚不存在时,以及当尚未确定是否存在或其他文件时,将加载bashcsh甚至可能存在自定义以运行某个特定程序而不是 shell。因此,它/etc/environment具有非常基本的语法。

正如所见关于此 Unix/Linux StackExchange 答案

您只能放置静态环境变量定义,格式为 VARIABLE=VALUE 或 VARIABLE="VALUE",每行一个定义。您不能使用任意的 shell 命令,您不能通过编写 FOO=hello+$BAR 来引用另一个变量的值

就您而言,您不应该使用exportshell 命令。

答案3

这听起来像是一个引用问题(即,的当前值$PATH包含 IFS 字符,而 bash 正试图执行其中的一部分)。变量值几乎总是应该被引用,因此该行应该如下所示:

export PATH="$PATH"

但是,由于您没有改变值,因此$PATH您实际上不需要分配,以下内容就足够了:

export PATH

相关内容