在Linux中如何让我的Perl脚本像二进制文件一样运行?

时间:2013-07-23 14:24:27

标签: linux perl symlink

我有一个Perl脚本,我希望能够从命令行运行。我可以完全依靠它自己运行。谁能看到我在这里做错了什么?

以下是我尝试的内容

 $ ln -s slice.pl /bin
 $ ln -s slice.pl /usr/bin

 $ ln -s slice.pl /bin/slice
 $ ln -s slice.pl /usr/bin/slice

 $ slice
 $ slice: command not found

符号链接是否必须 chmod + x?原始文件是。

3 个答案:

答案 0 :(得分:2)

线索是command not found错误。如果您的shell发现slice.pl,它会抱怨一个糟糕的解释器或权限错误。

清除shell的PATH查找缓存。使用bash,运行

$ hash -r

或使用C shell派生词(例如tcsh),运行

% rehash

在此之后,您将能够运行slice命令。

与文件扩展名的关联是DOS-ish约定。使用Unix,调用你的程序是什么, ie slice,并给程序一个shebang行(#!)告诉操作系统如何执行它。 / p>

答案 1 :(得分:2)

你需要像这样调用它:

$ ln -s "`pwd`"/slice.pl /bin/slice
$ slice

失败,因为链接必须正确指向脚本。

答案 2 :(得分:1)

  1. 确保/ bin或/ usr / bin /位于用户$ PATH
  2. 执行chmod a+rx slice.pl
  3. 确保这是您脚本中的第一个

    #!/usr/bin/perl
    

    只要它确实是perl的路径。 which perl会为您提供perl

  4. 的路径
  5. 确保文件使用unix行结尾(0A)而不是Windows行结尾(0D 0A),尤其是在shebang(#!)行。