/ etc / environment导出path

我有以下/ etc /环境:

export PATH=$PATH 

每当我login时,我得到以下错误:

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

我究竟做错了什么?

(我的实际/ etc / enviroment更复杂,并build立了Java的path,但为简单起见,我甚至不能得到上述工作)

我正在使用Centos6

我认为更干净的方法是在/etc/environment使用/etc/profile.d一个条目,但是可以回显$ PATH的输出吗? 这可能是真正的问题。 或者至less显示复杂的环境文件的细节。

你误解了/etc/environment语法。 它不被解释为一系列的shell命令,所以它根本就不是一个.sh文件。 /etc/environment在shell还不存在时加载,还没有决定是否有bashcsh或其他。 甚至可以定制运行某个特定的程序而不是shell。 因此/etc/environment有一个非常基本的语法。

正如在这个Unix / Linux StackExchange上看到的答案 :

您只能将VARIABLE = VALUE或VARIABLE =“VALUE”forms的静态环境variables定义(每行一个定义)。 你不能有任意的shell命令,你不能通过写FOO = hello + $ BAR来引用另一个variables的值

在你的情况下,你不应该使用export shell命令。

这听起来像一个引用问题(即$PATH的当前值包含IFS字符和bash试图执行它的一部分)。 variables值应该总是被引用,所以行应该是这样的:

 export PATH="$PATH" 

但是,由于不改变$PATH的值,所以实际上并不需要赋值,下面就足够了:

 export PATH