我正在使用MacOs Mojave,我发现env
二进制文件位于/usr/bin/env
下。现在,我们有了一堆shell脚本(在linux下编写和工作),其中的/bin/env
已为shebang行进行了硬编码。
我认为很简单:
cd /bin
sudo ln -s /usr/bin/env env
或者也许
sudo cp /usr/bin/env .
应该可以解决问题,但是我得到了:
ln:env:不允许操作
(与cp
相同)。
有什么解决方法吗?
答案 0 :(得分:2)
虽然您可以继续前进,disable System Integrity Protection,但我不建议这样做。
相反,请更改您的shebang以使用/usr/bin/env
;这就是env
所属的地方。
显然,某些Linux发行版在env
和/bin
中都包含/usr/bin
,但有些(包括Debian和可能的派生工具)却没有。 macOS也没有,我敢打赌其他BSD也没有。