我如何修复“bash:perl myscript.pl:command not found”?

时间:2009-11-25 21:39:18

标签: perl bash

也许这是世界上最愚蠢的问题,但我认真对待它并可以使用帮助。我试图在Linux上运行perl脚本。这是一个简单的文本编辑脚本,没什么特别的。我用Google搜索,发现我必须chmod +x,然后在控制台中运行myscript.pl。因为它应该修改一个文本文件,所以我在chmoding之后做了myscript.pl > myfile.txt

但它不起作用。我得到:bash: perl myscript.pl: command not found

7 个答案:

答案 0 :(得分:7)

除非你的路径中有myscript.pl,否则你需要指定当前目录。

$ ./myscript.pl

您可以使用$ echo $PATH检查当前目录是否在您的路径中。如果您经常使用此脚本,则可以将其移至路径中,将其移至路径中,通常为~/bin

或者将当前目录添加到$ PATH环境变量中。有关说明,请查看shell的文档。

答案 1 :(得分:6)

你可以发布你脚本的前几行吗?

具体来说,如果你有#!/usr/bin/perl该行上有任何拼写错误,多余的空格等?

同时做ls /usr/bin/perl(或该行上的任何内容)以确保它实际存在。

答案 2 :(得分:2)

看起来你的Linux机器上没有安装perl。当你尝试这个时,你会得到同样的东西:# perl -e 'print "hi";'

答案 3 :(得分:2)

As Chirael said,听起来像你的shebang行(文件顶部的指令告诉shell如何运行脚本)无论如何都是无效的。您可以通过调用脚本完全绕过shebang行:

perl myscript.pl > myfile.txt

您也不需要设置脚本的可执行位,就像使用这种调用方法一样,您只是在阅读脚本而不是执行它(从shell的角度来看)。

答案 4 :(得分:0)

根据这个thread,它可能来自新线的不同表示。

您是否已将脚本写在Windows框中并复制到您的Linux框?

你的文字编辑是什么?

答案 5 :(得分:0)

我有同样的问题,并将其追溯到DOS行结尾(^ M)。在.pl文件上运行dos2unix解决了这个问题。

答案 6 :(得分:0)

请使用, ./myperl.pl> outfile.txt 给出当前目录路径 感谢