2017-03-15 64 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