Как мне исправить "bash: perl myscript.pl: команда не найдена"? - PullRequest
1 голос
/ 26 ноября 2009

Возможно, это самый глупый вопрос в мире, но у меня есть серьезные проблемы с ним, и я могу воспользоваться помощью. Я пытаюсь запустить Perl скрипт на Linux. Это простой текстовый скрипт, ничего особенного. Я гуглил и нашел, что мне нужно chmod +x, а затем просто запустить myscript.pl в консоли. Так как он должен был изменить текстовый файл, я сделал myscript.pl > myfile.txt после его изменения

Но это не работает. Я получаю: bash: perl myscript.pl: command not found

Ответы [ 7 ]

7 голосов
/ 26 ноября 2009

Если в вашем пути нет файла myscript.pl, вам нужно будет указать текущий каталог.

$ ./myscript.pl

Вы можете проверить, находится ли текущий каталог в вашем пути с помощью $ echo $PATH. Если вы часто используете этот сценарий, вы можете поместить его в путь, переместив его в каталог, который является частью вашего пути, обычно ~/bin.

Или путем добавления текущего каталога в переменную среды $ PATH. Обратитесь к документации для вашей оболочки для получения инструкций.

6 голосов
/ 26 ноября 2009

Можете ли вы опубликовать первые несколько строк вашего скрипта?

В частности, если у вас есть #!/usr/bin/perl, есть ли опечатки в этой строке, дополнительные пробелы и т. Д .?

Также сделайте ls /usr/bin/perl (или что-то еще в этой строке), чтобы убедиться, что оно действительно там.

2 голосов
/ 26 ноября 2009

Как сказал Чираэль , это звучит так, как будто ваша строка Шебанга (директива вверху файла, которая сообщает оболочке, как запустить скрипт) как-то недопустима. Вы можете полностью обойти строку shebang, вызвав ваш скрипт как:

perl myscript.pl > myfile.txt

Вам также не нужно устанавливать исполняемый бит скрипта, так как при этом методе вызова вы только читаете скрипт, но не выполняете его (с точки зрения оболочки).

2 голосов
/ 26 ноября 2009

Не похоже, что Perl установлен на вашем Linux-компьютере. Вы получаете то же самое, когда пытаетесь это: # perl -e 'print "hi";'?

0 голосов
/ 18 марта 2016

Пожалуйста, используйте, ./myperl.pl> outfile.txt дать текущий путь к каталогу спасибо

0 голосов
/ 14 марта 2014

У меня была та же проблема, и она прослежена до конца строки DOS (^ M). Запуск dos2unix для файла .pl устранил проблему.

0 голосов
/ 26 ноября 2009

Согласно этому потоку , это может быть из другого представления новой строки.

Вы написали сценарий в окне Windows и скопировали его в свой ящик Linux?

Какой у вас текстовый редактор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...