2015-11-08 1 views
0

Courir eval $ PATH produit ce message:

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 

Cela ne semble pas causer de problèmes avec rbenv, curieux de ce qui est à l'origine de ce message d'erreur et si quelqu'un sait comment le réparer.

Tout cela sur OS X El Capitan avec rbenv installé par homebrew. PS: Cela peut-il avoir quelque chose à voir avec le fait que '/ usr/local/var/rbenv/shims' est un répertoire, pas un fichier? Si oui, pourquoi les poissons pensent-ils que c'est un fichier?

+0

Oui, 'Le fichier '/ usr/local/var/rbenv/shims' n'est pas exécutable par cet utilisateur' – sobolevn

Répondre

2

eval $$PATH ne fait pas ce que vous pensez qu'il fait. eval exécute ses arguments à travers un cycle supplémentaire d'analyse (devis et traitement d'échappement, etc) puis essaie d'exécuter le résultat en tant que commande. Votre PATH ne va pas évaluer à une commande valide - c'est une liste de répertoires où le shell cherche des commandes. Normalement, je m'attends à ce qu'il traite l'ensemble des répertoires en une seule commande et qu'il reçoive une erreur parce que ce n'est pas un nom de commande valide. Dans ce cas, il semble que chaque répertoire de votre PATH soit considéré comme un mot distinct (et traite donc le premier comme une commande et le reste comme des arguments de cette commande). Avez-vous mis IFS à ":" par hasard?

Quoi qu'il en soit, la solution est simple: ne pas utiliser eval $PATH. Je ne suis pas sûr de ce que vous vouliez faire, mais peu importe ce que vous aviez besoin de trouver une façon différente de le faire.