Macos OSX Yosemite-路径中的字符无效

Macos OSX Yosemite-路径中的字符无效,macos,git,bash,path,homebrew,Macos,Git,Bash,Path,Homebrew,我在安装自制软件时遇到问题,看起来问题(UTF-8(ArgumentError)错误消息中的字节序列无效)是由于我的路径中的错误造成的。当我运行echo$PATH时,我会得到以下信息(请确保滚动到下面代码块的最右侧以查看故障): 我不知道/usr/local/git/bin路径前面的那些奇怪字符是从哪里来的。我正在使用bash(同样的问题)。我不知道这是从哪里来的。我的.bash_配置文件看起来也很干净 检查您的~/.profile,~/.bash\u profile和~/.bashrc文件。这

我在安装自制软件时遇到问题,看起来问题(UTF-8(ArgumentError)错误消息中的字节序列无效)是由于我的路径中的错误造成的。当我运行echo$PATH时,我会得到以下信息(请确保滚动到下面代码块的最右侧以查看故障):


我不知道/usr/local/git/bin路径前面的那些奇怪字符是从哪里来的。我正在使用bash(同样的问题)。我不知道这是从哪里来的。我的.bash_配置文件看起来也很干净

检查您的
~/.profile
~/.bash\u 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
看到模式了吗?通过将
PATH
设置为
prefix:$PATH
$PATH:suffix
PATH添加一个值,其中新的前缀或后缀是安装本地软件包的目录。新值应该是前缀还是后缀可能无关紧要——除非您试图覆盖系统版本(例如,您的
/usr/local/git
是因为
/usr/bin/git
太旧而安装的)——然后,您的
local
版本首先出现在
路径中是很重要的。第一次运行命令时,速度差也很小;如果shell位于
路径的末尾,则在找到它之前,它必须查看更多的位置


引用中的差异非常显著--
PATH=$PATH:suffix
扩展到
PATH
的旧值,并添加
:suffix
,而
PATH='$PATH:suffix'
PATH
的旧值替换为
$PATH
的文本字符串
:suffix
。幸运的是,所有这些都没有完全替换您原来的
路径,这将使您的shell基本上无法运行(至少在您发现必须使用
/bin/ls
而不仅仅是
ls
)之前是如此。

无论将它们放在哪里,都会出现另一个错误--
导出
(通常不需要)命令的一部分,而不是值的一部分。该值表示发生这种情况时您在本地安装了
git
。还有多个其他错误,其中
PATH=
$PATH
作为值的一部分。但是,如果不访问您的文件,我们无法进行故障排除。您是否手动编辑了
.bashrc
关于
.profile
?我可以通过编辑~/.bashrc和~/.bash_配置文件来获得吗?.bashrc是空的,.bash_配置文件有一大堆由macports修改的内容。另外,我如何使这些文件可供查看?您需要确定对路径进行错误更改的位置。因为您正在使用
bash
,我建议使用:
bash-x-l
(然后是
exit
)来查看登录时发生的情况。代码中可能有5次尝试设置路径,其中4次是错误的。不过,看到的情况有点奇怪。您也可以尝试
echo“$PATH”| od-c
这将显示错误字符的字节值。另一件要检查的事情是:从Finder或Dock启动AppleScript Editor(不以任何方式使用shell),输入脚本
do shell脚本“env”
,然后单击运行。这将显示从
launchd
继承的环境,受任何shell初始化脚本的影响。查看问题是否也出现在那里。谢谢Jonathan。我运行了'bash-x-1'命令(但不确定如何使用'exit'跟随它)。我确实得到了很多结果,但我不确定如何解释这些结果。有什么方法可以让我发布结果吗?谢谢你的透彻解释。我猜我的困惑(因为我对所有这些都很陌生)是因为有太多的文件可以设置这个path变量。是否有优先顺序?因为我已经查看了~/.profile、~/.bash_profile和~/.bashrc,但这些文件都没有引用任何与git相关的内容。@JonathanLeffler的注释有一个很好的调试方法。最后,如果您无法找出错误值的来源,y您可以在自己的启动文件中覆盖它们(
.bashrc
应该覆盖大部分基础)。再次感谢您的帮助。通过在“.bashrc”文件中重写此项,我终于能够克服此问题。我很失望,我没有更多的时间来探索@JonathanLeffler的故障排除技巧。我确实花了一些时间研究这些技巧,虽然我没有找到问题的根本原因,但我确实了解了此技巧的工作原理。下次,我会更加小心我的实验。考虑到我在这方面的经验很少,我仍然感到困惑,仍然有问题,确实需要一些帮助。我仍然看到在我的道路上出现无效字符,导致像自制啤酒这样的事情失败。我花了数小时试图遵循给出的建议,但我缺乏相关背景知识真的明白我看到了什么。除了~/.profile、~/.bash_profile和~/.bashrc文件之外,还有一些东西正在添加到我的路径中。我应该打开一个新问题吗?如果需要的话,我可以通过Pastebin提供额外的信息。现在,我束手无策,所以任何帮助都将不胜感激。在进一步挖掘之后,似乎OS X path_helper导致了我的问题。在我的/private/etc/profile文件中,我只有两个if语句,它们似乎决定了是使用path_helper还是bashrc。我删除了该代码(使概要文件为空)。我现在不再拥有inv
 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