このスクリプトを Mac OS 10.7 (Lion) で実行しようとすると、次のエラーが発生します:
$ bbcolors
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted
このスクリプトは他のMacでも問題なく実行できました。このスクリプトDaring Fireball からダウンロードされ、変更されていません。
私は見つけたこの人非常によく似た問題がありましたが、受け入れられた答えは、ファイルシステムのマウント時に「noexe」オプションがあったというものでした。私の場合はそうではないと確信しています。/usr/local/bin/ にインストールしただけで、そこにある他のものは正常に動作しているからです (他の場所や、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
これはコンパイルされたバイナリではなく Perl スクリプトですが、それは問題ではありません。参考までに、追加情報をいくつか示します。
$ 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
ベストアンサー1
ファイルを TextEdit で開いたり保存したりしましたか?
ファイルシステムのメタデータ(隔離属性)を導入できるあなたが説明した症状につながる。
試す:
xattr -l /usr/local/bin/bbcolors
そして
xattr -d com.apple.quarantine /usr/local/bin/bbcolors
隔離属性が表示された場合。