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

69 *_*970 3 shell bash environment-variables

我的 env 说:

_=/usr/bin/env

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

#!_ perl
Run Code Online (Sandbox Code Playgroud)

?

bk2*_*204 5

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

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

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