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

时间:2014-02-07 16:02:49

标签: linux perl unix shebang

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

#!/usr/bin/perl
print "Hey there\n";

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

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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

要从当前目录运行某些内容,您需要在前面加上“./”来告诉它“此目录”,即./testprogram

如果只键入test,它将会显示在/ bin等标准安装目录中。这就是为什么当你运行cprm时,它知道可执行文件的位置。

正如其他人所说,大多数shell都不允许命名脚本test