我正在尝试在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
perl -v
时会发生什么?在Perl脚本(bbcolors
)中的初始注释行之后会出现什么?此外,权限后面的“@”表示文件有一些辅助属性信息;您是否已经调查了这个(也许可以使用ls -@
)? - Jonathan Lefflerxattr -r com.apple.quarantine /file/path
解决了这个问题。我会回答自己的问题,但是我现在还没有足够的声望在几个小时内进行回答。 - Nickxattr -d com.apple.quarantine /usr/local/bin/bbcolors
?(-r
表示“递归”;-d
表示“删除”。)我老是忘记这个命令叫什么。 - Jonathan Leffler