我有以下/etc/environment:
export PATH=$PATH
每当我登录时都会出现以下错误:
-bash: id: command not found
-bash: tty: command not found
我究竟做错了什么?
(我的实际 /etc/enviroment 更复杂,并将 java 设置到路径上,但为了简单起见,我甚至无法使上述操作正常工作)
我正在使用 Centos6
答案1
我认为更简洁的方法是使用/etc/profile.d
over中的条目/etc/environment
,但您能回显 $PATH 的输出吗?这可能是真正的问题。或者至少显示复杂环境文件的详细信息。
答案2
您误解了/etc/environment
语法。它不会被解释为一系列 shell 命令,因此它根本不是一个.sh
文件。/etc/environment
当 shell 尚不存在时,以及当尚未确定是否存在或其他文件时,将加载bash
。csh
甚至可能存在自定义以运行某个特定程序而不是 shell。因此,它/etc/environment
具有非常基本的语法。
正如所见关于此 Unix/Linux StackExchange 答案:
您只能放置静态环境变量定义,格式为 VARIABLE=VALUE 或 VARIABLE="VALUE",每行一个定义。您不能使用任意的 shell 命令,您不能通过编写 FOO=hello+$BAR 来引用另一个变量的值
就您而言,您不应该使用export
shell 命令。
答案3
这听起来像是一个引用问题(即,的当前值$PATH
包含 IFS 字符,而 bash 正试图执行其中的一部分)。变量值几乎总是应该被引用,因此该行应该如下所示:
export PATH="$PATH"
但是,由于您没有改变值,因此$PATH
您实际上不需要分配,以下内容就足够了:
export PATH