也许这是世界上最愚蠢的问题,但我认真对待它并可以使用帮助。我试图在Linux上运行perl脚本。这是一个简单的文本编辑脚本,没什么特别的。我用Google搜索,发现我必须chmod +x
,然后在控制台中运行myscript.pl
。因为它应该修改一个文本文件,所以我在chmoding之后做了myscript.pl > myfile.txt
但它不起作用。我得到:bash: perl myscript.pl: command not found
答案 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)
答案 5 :(得分:0)
我有同样的问题,并将其追溯到DOS行结尾(^ M)。在.pl文件上运行dos2unix解决了这个问题。
答案 6 :(得分:0)
请使用, ./myperl.pl> outfile.txt 给出当前目录路径 感谢