【问题标题】:execute perl in command line without specifying perl in UNIX在命令行中执行 perl 而无需在 UNIX 中指定 perl
【发布时间】:2012-02-19 00:25:09
【问题描述】:

有一个关于 Windows 的类似问题,但它不适用于基于 Unix 的计算机(特别是 OS X)。

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

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

bash: example.pl: command not found

【问题讨论】:

  • 不应该是#!/usr/bin/perl吗?没有空格(不确定这是否重要)和完整路径?另外,您的 .pl 文件是否可执行? (尝试chmod +x example.pl)。更不用说如果. 不在你的PATH 中,那么你需要运行./example.pl,而不是example.pl
  • 您也设置了文件可执行文件吗? “不工作”是什么意思,你能给出错误信息吗?
  • @DanFego 是的,我认为自动更正解决了问题,但我确实忘记了 /
  • @EdwardThomson last | ctime.pl 是我正在尝试执行的-bash: ctime.pl: command not found
  • 您真的不应该更正问题中的代码以消除问题。此条目不再有任何意义!

标签: perl bash unix command-line


【解决方案1】:

我有两个想法要补充:

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

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

【讨论】:

    【解决方案2】:

    你可以这样做,

    1. 找到解释器/执行器路径。在这种情况下,它的 /usr/bin/perl/usr/bin/env perl
    2. 将其作为#!/usr/bin/perl 添加到文件的第一行。
    3. 授予文件chmod +x example.pl的执行权限

    现在它会运行

        $ ./example.pl
    

    【讨论】:

      【解决方案3】:

      你需要在第一行(“shebang”)#!/usr/bin/perl(注意你有空格的斜线)。然后,首先您需要确保它实际上是您的perl 可执行文件的正确路径(键入which perl 以查看它的位置)。如果它在其他地方,请适当地更正路径。然后您需要确保脚本具有执行权限集。键入ls -l example.pl,然后在第一列(特别是第四个字符)中查找x。如果它不存在,您需要使用chmod a+x example.pl 使脚本可执行。最后,要运行程序,您需要使用./example.pl./ 告诉您的 shell 您希望将脚本放在当前目录中。

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 1970-01-01
        • 2012-06-26
        • 2017-07-30
        • 2011-05-05
        • 2023-03-03
        • 2015-11-12
        • 2021-12-14
        • 1970-01-01
        相关资源
        最近更新 更多