2012-01-25 109 views
5

还有一个类似Windows的问题,但它不适用于基于Unix的计算机(特别是OS X)。在命令行中执行perl而不指定UNIX中的perl

我想输入一个文件的名称,比如说example.plexample.pl parametertext.txt,并且知道它执行perl。

我在文件中指定了#!/usr/bin/perl,所以它可以找到可执行文件。相反,我得到的消息:

bash: example.pl: command not found 
+5

是不是应该是'#!/ usr/bin/perl'?没有空格(不知道是否重要)和完整路径?另外,你的.pl文件是否可执行? (尝试'chmod + x example.pl')。更不用说如果'.'不在你的'PATH'中,那么你需要运行'。example.pl'而不是'example.pl'。 –

+1

你还设置了可执行文件吗? “不工作”是什么意思,你能给出错误信息吗? –

+0

@DanFego是的,我认为autocorrect碰到它,但我没有忘记/ – Chris

回答

11

你能做到这样,

  1. 查找翻译/执行人路径。在这种情况下,其/usr/bin/perl/usr/bin/env perl
  2. 将其添加到文件的第一行为#!/usr/bin/perl
  3. 给执行权限文件chmod +x example.pl

现在它将会运行

$ ./example.pl 
2

你需要做的顶线(以下简称“认领”)#!/usr/bin/perl(注意斜线,你有一个空格)。然后,首先你需要确保它是你的perl可执行文件的正确路径(输入which perl来查看它的位置)。如果它在其他地方,请适当修改路径。然后您需要确保脚本具有执行权限设置。键入ls -l example.pl,并在第一列(特别是第四个字符)中查找x。如果它不存在,则需要使脚本可执行chmod a+x example.pl。最后,要运行该程序,您需要使用./example.pl./告诉你的shell你想要当前目录下的脚本。

1

我有两个想法补充:

1)要使用example.pl test1.txt的您的路径应该包含一个点。 echo $ PATH /usr/bin:/ usr/X11R6/bin:/ usr/bin/X11 :.

2)你的文件行尾应该是unix,\ n。至少你的shebang行包含perl路径,以\ n结尾。