我有以下/ 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还不存在时加载,还没有决定是否有bash
或csh
或其他。 甚至可以定制运行某个特定的程序而不是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