DD. Asked: 2012-05-17 03:38:09 +0800 CST2012-05-17 03:38:09 +0800 CST 2012-05-17 03:38:09 +0800 CST /etc/environment 导出路径 772 我有以下 /etc/environment: export PATH=$PATH 每当我登录时,我都会收到以下错误: -bash: id: command not found -bash: tty: command not found 我究竟做错了什么? (我实际的 /etc/enviroment 更复杂,并将 java 设置到路径上,但为了简单起见,我什至无法使上述工作正常进行) 我用的是centos6 linux centos 3 个回答 Voted kubanczyk 2015-01-22T01:45:00+08:002015-01-22T01:45:00+08:00 你误解了/etc/environment语法。它没有被解释为一系列 shell 命令,所以它根本不是一个.sh文件。当/etc/environmentshell 尚不存在时加载 ,并且仍未决定是否存在bashorcsh或 other 时。甚至可能有一个定制来运行一些特定的程序而不是 shell。因此/etc/environment有一个非常基本的语法。 如在此 Unix/Linux StackExchange 答案中所见: 您只能放置 VARIABLE=VALUE 或 VARIABLE="VALUE" 形式的静态环境变量定义,每行一个定义。你不能有任意的 shell 命令,你不能通过写 FOO=hello+$BAR 来引用另一个变量的值 在你的情况下,你不应该使用exportshell 命令。 Best Answer ewwhite 2012-05-17T03:45:54+08:002012-05-17T03:45:54+08:00 /etc/profile.d我认为更简洁的方法是在over中使用一个条目/etc/environment,但是你能回显 $PATH 的输出吗?这可能是真正的问题。或者至少显示复杂环境文件的详细信息。 mgorven 2012-05-17T12:23:34+08:002012-05-17T12:23:34+08:00 这听起来像是一个引用问题(即 的当前值$PATH包含 IFS 字符并且 bash 正在尝试执行它的某些部分)。几乎总是应该引用变量值,因此该行应如下所示: export PATH="$PATH" 但是,由于您没有更改的值,$PATH您实际上并不需要分配,因此以下内容就足够了: export PATH
你误解了
/etc/environment
语法。它没有被解释为一系列 shell 命令,所以它根本不是一个.sh
文件。当/etc/environment
shell 尚不存在时加载 ,并且仍未决定是否存在bash
orcsh
或 other 时。甚至可能有一个定制来运行一些特定的程序而不是 shell。因此/etc/environment
有一个非常基本的语法。如在此 Unix/Linux StackExchange 答案中所见:
在你的情况下,你不应该使用
export
shell 命令。/etc/profile.d
我认为更简洁的方法是在over中使用一个条目/etc/environment
,但是你能回显 $PATH 的输出吗?这可能是真正的问题。或者至少显示复杂环境文件的详细信息。这听起来像是一个引用问题(即 的当前值
$PATH
包含 IFS 字符并且 bash 正在尝试执行它的某些部分)。几乎总是应该引用变量值,因此该行应如下所示:但是,由于您没有更改的值,
$PATH
您实际上并不需要分配,因此以下内容就足够了: