还有一个类似Windows的问题,但它不适用于基于Unix的计算机(特别是OS X)。在命令行中执行perl而不指定UNIX中的perl
我想输入一个文件的名称,比如说example.pl
或example.pl parametertext.txt
,并且知道它执行perl。
我在文件中指定了#!/usr/bin/perl
,所以它可以找到可执行文件。相反,我得到的消息:
bash: example.pl: command not found
还有一个类似Windows的问题,但它不适用于基于Unix的计算机(特别是OS X)。在命令行中执行perl而不指定UNIX中的perl
我想输入一个文件的名称,比如说example.pl
或example.pl parametertext.txt
,并且知道它执行perl。
我在文件中指定了#!/usr/bin/perl
,所以它可以找到可执行文件。相反,我得到的消息:
bash: example.pl: command not found
你能做到这样,
/usr/bin/perl
或/usr/bin/env perl
#!/usr/bin/perl
。chmod +x example.pl
现在它将会运行
$ ./example.pl
你需要做的顶线(以下简称“认领”)#!/usr/bin/perl
(注意斜线,你有一个空格)。然后,首先你需要确保它是你的perl
可执行文件的正确路径(输入which perl
来查看它的位置)。如果它在其他地方,请适当修改路径。然后您需要确保脚本具有执行权限设置。键入ls -l example.pl
,并在第一列(特别是第四个字符)中查找x
。如果它不存在,则需要使脚本可执行chmod a+x example.pl
。最后,要运行该程序,您需要使用./example.pl
。 ./
告诉你的shell你想要当前目录下的脚本。
我有两个想法补充:
1)要使用example.pl test1.txt的您的路径应该包含一个点。 echo $ PATH /usr/bin:/ usr/X11R6/bin:/ usr/bin/X11 :.
2)你的文件行尾应该是unix,\ n。至少你的shebang行包含perl路径,以\ n结尾。
是不是应该是'#!/ usr/bin/perl'?没有空格(不知道是否重要)和完整路径?另外,你的.pl文件是否可执行? (尝试'chmod + x example.pl')。更不用说如果'.'不在你的'PATH'中,那么你需要运行'。example.pl'而不是'example.pl'。 –
你还设置了可执行文件吗? “不工作”是什么意思,你能给出错误信息吗? –
@DanFego是的,我认为autocorrect碰到它,但我没有忘记/ – Chris