使perl脚本可执行...我可以取消前面的'perl'语句吗?

jak*_*115 0 unix linux perl shebang

这是一个非常简单的...我只是想在没有前面的perl命令的情况下使perl脚本可执行,而是让环境从shebang行中推断出解释器.这是我的示例脚本test:

#!/usr/bin/perl
print "Hey there\n";
Run Code Online (Sandbox Code Playgroud)

然后我chmod 775 test用来使脚本可执行.如果我使用该命令perl test,我得到输出Hey there.

但是,如果我只是键入test,我没有输出.这是怎么回事?为什么我的shebang线不能让环境意识到这是perl?有人可以帮帮我吗?

Bar*_*mar 6

不要为脚本命名test.这是大多数shell中的内置命令,因此它们不会寻找外部程序.

另外,要在当前目录中运行程序,应键入./programname.拥有你的通常是一个坏主意,.$PATH没有目录前缀的情况下执行它是必要的.