这是一个非常简单的...我只是想在不使用前面的perl
命令的情况下使perl脚本可执行,而是让环境从shebang行推断出解释器。这是我的示例脚本test
:
#!/usr/bin/perl
print "Hey there\n";
然后我使用chmod 775 test
使脚本可执行。如果我使用命令perl test
,我会得到输出Hey there
。
但是,如果我只输入test
,我就没有输出。这是怎么回事?为什么我的shebang线不能让环境意识到这是perl?有人可以帮助我吗?
答案 0 :(得分:6)
不要为脚本test
命名。这是大多数shell中的内置命令,因此他们不会去寻找外部程序。
此外,要在当前目录中运行程序,应键入./programname
。在.
中使用$PATH
通常是一个坏主意,在没有目录前缀的情况下执行它是必要的。
答案 1 :(得分:0)
要从当前目录运行某些内容,您需要在前面加上“./”来告诉它“此目录”,即./testprogram
。
如果只键入test
,它将会显示在/ bin等标准安装目录中。这就是为什么当你运行cp
或rm
时,它知道可执行文件的位置。
正如其他人所说,大多数shell都不允许命名脚本test
。