J'essaie d'exécuter ce script sur Mac OS 10.7 (Lion) et j'obtiens l'erreur:
$ bbcolors
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted
J'ai réussi à exécuter ce script sur d'autres Mac à moi. C'est juste ce script téléchargé et non modifié depuis Daring Fireball.
J'ai trouvé cette personne avec un problème très similaire mais la réponse acceptée était que le système de fichiers avait une option 'noexe' au montage. Je suis presque sûr que ce n'est pas le cas pour moi car je l'ai juste dans/usr/local/bin/et d'autres choses là-dedans fonctionnent bien (cela ne fonctionne pas non plus depuis d'autres endroits ou comme d'autres utilisateurs, y compris root) .
$ which bbcolors
/usr/local/bin/bbcolors
$ ls -l /usr/local/bin/bbcolors
-rwxr-xr-x@ 1 nick staff 9751 Mar 30 19:09 /usr/local/bin/bbcolors
C'est un script Perl et non un binaire compilé, ce n'est pas important. Voici quelques informations supplémentaires pour ce que cela vaut:
$ cat /usr/local/bin/bbcolors |head -n 1
#!/usr/bin/env Perl
$ which Perl
/usr/bin/Perl
$ env | grep PATH
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Vous est-il arrivé d'ouvrir/enregistrer le fichier dans TextEdit?
Cela peut introduire des métadonnées de système de fichiers (attribut de quarantaine) conduisant au symptôme que vous décrivez .
Essayer:
xattr -l /usr/local/bin/bbcolors
et
xattr -d com.Apple.quarantine /usr/local/bin/bbcolors
si vous voyez l'attribut de quarantaine.
la réponse de pilcrow est correcte, mais j'attire votre attention sur le fait que si vous travaillez avec une image disque, le problème peut être très déroutant, car l'attribut com.Apple.quarantine semble être hérité du fichier image disque dans les fichiers à l'intérieur (merci à febeling at Apple dev forums pour l'avoir remarqué!).
Pour résoudre le problème, vous devez supprimer l'attribut de quarantaine de l'image disque:
xattr -d com.Apple.quarantine /path/to/disk/image
puis éjectez et remontez l'image du disque. Ensuite, vos fichiers seront à nouveau nettoyés.
J'avais résolu ce problème.Ouvrez le fichier de commandes avec TextEdit puis enregistrez-le.
Plus d'informations: opération résolue non autorisée
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted
Est-ce que /usr/bin/env
existe? Peux-tu le courir? Exécutée seule, elle devrait vider vos variables d'environnement sur stdout.
Vous pouvez remplacer en toute sécurité:
#!/usr/bin/env Perl
Avec le chemin complet vers votre Perl
binaire de choix, par exemple:
#!/usr/bin/Perl