2017-03-15 76 views
0

我在终端的$PATH变量中遇到了一些奇怪的字符。

$ echo $PATH 

/opt/local/bin:...(many similar entries)...:/usr/local/git/bin??n’export 

??n’export就是我说的。我如何删除它?我看着.bacshrc,.bash_profile和类似的文件,但一切似乎正常。问题是,我无法安装一些新的程序“破”$PATH

我在终端版本2.7.1和macOS Sierra中使用bash - 在此先感谢。

+0

当你运行'$ bash -l'echo $ PATH''时,你会得到什么? –

+0

@GregoryNisbet他可能会得到'bash:echo $ PATH:没有这样的文件或目录。没有错过'-c'? :) – jm666

+0

@ jm666吧。编辑它为时已晚。请运行:'bash -l -c'echo $ PATH'' –

回答

0

问题解决。奇怪的条目来自/ etc/profile文件。

+0

请扩展此答案。 '/ etc/profile'中导致问题的是什么,为什么会出现这种情况?你自己修改了'/ etc/profile'吗? 如果没有这些信息,尽管您的问题可能会得到解决,但它并不会特别有助于未来的读者。 –

0

以下

perl -e 'printf q{export %s="%s";},$_,join(":",grep{-d $_&&!$seen{$_}++}split/:/,$ENV{$_}), $_ for(qw(PATH))' 

会为你生成一个新的export PATH=.....线,但清洗的元素。 (例如,没有重复的条目,并删除了所有非目录目录)。

您应该将结果复制并粘贴到您的$HOME/.profile而不是现有的PATH行。

+0

我们是否确定'PATH'中的奇怪垃圾是由'.profile'或'.bashrc'文件添加的? –

+0

@GregoryNisbet在OSX bash中使用(按供应商)'.profile'文件。 OP还说,检查'.bash_profile'。 **但是,是的**,它可能在更多的地方。重点是,脚本应该生成一个*清除的*'PATH',可能在文件系统中不存在具有“奇怪字符”的目录。 – jm666

+0

是的,我检查了您提到的所有文件,但找不到任何可疑条目。 – omas13