Fish

时间:2015-11-08 05:49:30

标签: macos rbenv fish

运行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'这个事实有关。是一个目录,而不是一个文件?如果是这样,为什么鱼会认为它是一个文件?

1 个答案:

答案 0 :(得分:2)

eval $$PATH并不能按照您的想法行事。 eval通过一个额外的解析循环(引用和转义处理等)运行其参数,然后尝试将结果作为命令运行。您的PATH不会评估为有效命令 - 它是shell查找命令的目录列表。通常,我希望它将整个目录集视为单个命令并获得错误,因为它不是有效的命令名。在这种情况下,它似乎将PATH中的每个目录视为一个单独的单词(因此将第一个作为命令处理,其余作为该命令的参数)。您是否将IFS设置为":"什么机会?

无论如何,解决方案很简单:不要使用eval $PATH。我不确定你想要它做什么,但无论你需要找到一种不同的方式来做它。