#!_ perl 与 #!/usr/bin/env perl 相同吗?

#!_ perl 与 #!/usr/bin/env perl 相同吗?

我的环境说:

_=/usr/bin/env

我有一个关于 shebang 的问题,如果我输入以下内容,输入是否正确:

#!_ perl

答案1

不,不会的。在这种情况下,_意味着环境变量$_,通常是设置为上一行的最后一个参数。它并不具有普遍性/usr/bin/env

但是,shebang 不会扩展环境变量。它由#!、一个可选空格、命令名称以及最多一个空格和一个参数组成(某些系统允许更多,但并非所有系统都允许)。因此,shebang 将尝试执行该程序_,这可能不是您想要的。

即使这确实有效,也会令人困惑,因此您希望在供其他人使用的清晰代码中避免使用它。

相关内容