linux 和 Solaris /usr/bin/env 的区别

Tim*_* T. 6 linux solaris perl env

我有一个简单的脚本:

#!/usr/bin/env perl -w
print "Hello World\n"
Run Code Online (Sandbox Code Playgroud)

制作这个可执行文件,在 Linux 上运行,我得到:

/usr/bin/env: perl -w: No such file or directory
Run Code Online (Sandbox Code Playgroud)

(没有 -w,这可以正常工作)

在 Solaris 8 机器上运行相同的脚本会产生正确的输出。

关于为什么会这样的任何建议?

gee*_*aur 5

不是env; 它是内核的#!处理程序。第一个单词 ( /usr/bin/env)之后的所有内容都作为单个参数字符串传递。最安全/最便携的是在perl那里之后不要放任何东西。