在 .bashrc 中确切设置 PATH 的位置是哪里?

6
在 .bashrc 文件的末尾,我添加了以下行来设置路径到我家目录中的 foo 文件夹:
PATH = $PATH:/home/username/foo
export PATH;

然后我在bash中输入:

source .bashrc

以下内容产生了错误:

bash: PATH: command not found

我正在使用Debian Squeeze。在一个类似的问题这里建议修改/etc/login.defs。我不想这样做,因为在login.defs中已经写明:

add the rest [of your paths] in the shell startup files

如何将文件夹foo添加到.bashrc的PATH中?
3个回答

30
您正在使用错误的语法。去掉空格:
export PATH=$PATH:/home/username/foo

关于 /etc/login.defs 或其他全局配置:由于它是全局配置,因此在其中添加位于您的$HOME目录内部的路径可能不是一个好主意。 ;)

4

只需在您的.bashrc文件中加入以下行:

export PATH=/home/username/foo:$PATH

1
如果我没有记错的话,将$PATH放在第一位是一个好习惯。这可以避免覆盖本地Linux命令。 - carlos.baez
正确。 export PATH=$PATH:/home/username/foo 更好地防止任何意外覆盖。 - mehtabsinghmann
如果添加自定义可执行二进制文件到PATH的目标是为了覆盖/包装原生函数/二进制文件,请使用'export PATH=/home/username/foo:$PATH'。 如果目标仅是将路径附加到PATH上而不覆盖任何本机可执行命令,则使用'export PATH=$PATH:/home/username/foo'。 或者,用户可以为自定义二进制文件设置名称空间,以避免因配置文件(如此情况下的.bashrc)中的优先顺序导致任何覆盖。 - mehtabsinghmann

-1

在Mac和CentOS之间的语法存在差异,但是在CentOS和RedHat上使用以下语法:

export PATH="/path/directory:$PATH" 然后执行 source .bashrc

我不确定其他Linux发行版是否适用,但它可以在CentOS和RedHat上工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接