运行eval $ PATH会产生以下消息:
The file '/usr/local/var/rbenv/shims' is not executable by this user
- (line 1): begin; /usr/local/var/rbenv/shims /usr/local/bin /usr/local/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
^
from sourcing file -
called on line 60 of file /usr/local/Cellar/fish/HEAD/share/fish/functions/eval.fish
in function 'eval'
called on standard input
这似乎没有引起rbenv的任何问题,只是好奇导致此错误消息的原因以及是否有人知道如何解决它。
这一切都在OS X El Capitan上,并且由homebrew安装了rbenv。
PS:这可能与' / usr / local / var / rbenv / shims'这个事实有关。是一个目录,而不是一个文件?如果是这样,为什么鱼会认为它是一个文件?
答案 0 :(得分:2)
eval $$PATH
并不能按照您的想法行事。 eval
通过一个额外的解析循环(引用和转义处理等)运行其参数,然后尝试将结果作为命令运行。您的PATH
不会评估为有效命令 - 它是shell查找命令的目录列表。通常,我希望它将整个目录集视为单个命令并获得错误,因为它不是有效的命令名。在这种情况下,它似乎将PATH
中的每个目录视为一个单独的单词(因此将第一个作为命令处理,其余作为该命令的参数)。您是否将IFS
设置为":"什么机会?
无论如何,解决方案很简单:不要使用eval $PATH
。我不确定你想要它做什么,但无论你需要找到一种不同的方式来做它。