próbuję uruchomić ten skrypt na Mac OS 10.7 (Lion) i dostaję błąd:Mac OS:/usr/bin/env: bad interpreter: Operacja niedozwolona
$ bbcolors
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted
I z powodzeniem uruchomić ten skrypt na innych komputerach Mac. To tylko this script pobrane i niezmodyfikowane z gry Daring Fireball.
Znalazłem this person z bardzo podobnym problemem, ale przyjęta odpowiedź brzmiała, że system plików miał opcję "noexe" na górze. Jestem prawie pewien, że tak nie jest w przypadku mnie, ponieważ właśnie dostałem go w/usr/local/bin/i inne rzeczy tam działa dobrze (nie działa również z innych miejsc lub innych użytkowników, w tym root) .
$ which bbcolors
/usr/local/bin/bbcolors
$ ls -l /usr/local/bin/bbcolors
[email protected] 1 nick staff 9751 Mar 30 19:09 /usr/local/bin/bbcolors
Jest to skrypt Perla, nie skompilowany plik binarny, nie to powinno mieć znaczenie. Oto kilka dodatkowych informacji na co warto:
$ 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
Zaspokoiłeś większość normalnych podstaw, by dowiedzieć się, co może być nie tak; dobra robota. Co się stanie, gdy uruchomisz 'perl -v'? Co pojawia się po początkowych liniach komentarza w skrypcie Perla ('bbcolors')?Również "@" po uprawnieniach oznacza, że istnieje jakiś pomocniczy atrybut informacji dla pliku; czy to zbadałeś (być może z 'ls - @')? –
Rozwiązałem problem za pomocą 'xattr -r com.apple.quarantine/file/path' Odpowiem na własne pytanie, ale nie mam wystarczającej liczby przedstawicieli, aby to zrobić przez kilka godzin. – Nick
'xattr -d com.apple.quarantine/usr/local/bin/bbcolors'? ('-r' oznacza 'rekursywny';' -d' oznacza 'delete'.) Ciągle zapominam, co to polecenie jest wywoływane. –