OSX Yosemite - 路径中的无效字符

时间:2014-11-24 04:05:52

标签: macos git bash path homebrew

我在安装Homebrew时遇到问题,看起来问题(UTF-8(ArgumentError)错误消息中的无效字节序列)是由于我的PATH出错了。当我运行echo $ PATH时,我得到以下内容(请务必滚动到下面代码块中的最右边以查看错误):

/usr/local/mysql/bin:/opt/subversion/bin/:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:PATH=/usr/local/share/python:$PATH:PATH=/usr/local/share/npm/bin:$PATH:export PATH��:/usr/local/git/bin

我不知道/ usr / local / git / bin路径之前的那些奇怪的字符来自哪里。我使用bash(尝试过zshell,同样的问题)。我无法找到它的来源。我的.bash_profile文件看起来也很干净。

1 个答案:

答案 0 :(得分:1)

检查您的~/.profile~/.bash_profile~/.bashrc文件。这些值也可能在/etc/profile或其他系统范围的文件中设置,但错误的性质使我认为它们是您自己手动编辑个人文件的结果。你是决定你可能改变什么以及何时改变的最好的法官。

查找以下条目:

 PATH='/usr/local/share/python:$PATH'
 PATH='PATH=/usr/local/share/npm/bin:$PATH'
 PATH='export PATH��:/usr/local/git/bin'

他们应该看起来像

 PATH=/usr/local/share/python:$PATH
 PATH=/usr/local/share/npm/bin:$PATH
 PATH=$PATH:/usr/local/git/bin
 # Not strictly necessary -- PATH is already exported
 export PATH

看模式?这些都通过将其设置为PATHprefix:$PATH来为$PATH:suffix添加值,其中新前缀或后缀是您已安装本地程序包的目录。新值应该是前缀还是后缀可能没什么影响 - 除非您尝试覆盖系统版本(例如,因为/usr/local/git太旧而安装了/usr/bin/git - 那么,您的local版本在PATH中排在第一位是非常重要的。第一次运行命令时,速度差异也很小;如果它位于PATH的末尾,则shell必须在查找之前查看更多位置。

引用的差异很大 - PATH=$PATH:suffix扩展为PATH的旧值,并添加:suffix,而PATH='$PATH:suffix'替换{{1}的旧值添加了带有PATH的文字字符串$PATH。你很幸运,这一切都没有完全取代原来的:suffix,这会使你的shell大体上无法操作(至少在你发现必须使用PATH而不仅仅是{{ 1}})。