выполнить perl в командной строке без указания perl в UNIX - PullRequest
5 голосов
/ 25 января 2012

Есть аналогичный вопрос о Windows, но он не будет работать на компьютерах на базе Unix (в частности, OS X).

Я хочу ввести имя файла, скажем example.pl или example.pl parametertext.txt и он знает, как выполнить perl.

Я указал #!/usr/bin/perl в файле, чтобы он мог найти исполняемый файл.Вместо этого я получаю сообщение:

bash: example.pl: command not found

Ответы [ 3 ]

11 голосов
/ 25 января 2012

Вы можете сделать это так,

  1. Найдите путь переводчика / исполнителя. В этом случае его /usr/bin/perl или /usr/bin/env perl
  2. Добавьте его в первую строку файла как #!/usr/bin/perl.
  3. Дать разрешение на выполнение файла chmod +x example.pl

Теперь он будет работать

    $ ./example.pl
2 голосов
/ 25 января 2012

Вам нужно сделать верхнюю строку («шебанг») #!/usr/bin/perl (обратите внимание на косую черту, где у вас есть пробел). Затем сначала необходимо убедиться, что на самом деле правильный путь к вашему perl исполняемому файлу (введите which perl, чтобы увидеть, где он находится). Если это в другом месте, исправьте путь соответствующим образом. Затем вам нужно убедиться, что у скрипта есть разрешение на выполнение. Введите ls -l example.pl и найдите x в первом столбце (в частности, четвертый символ). Если его там нет, вам нужно сделать скрипт исполняемым с chmod a+x example.pl. Наконец, для запуска программы необходимо использовать ./example.pl. ./ сообщает вашей оболочке, что вы хотите скрипт в вашей текущей директории.

1 голос
/ 26 января 2012

У меня есть две мысли, чтобы добавить:

1) Для использования example.pl test1.txt ваш путь должен содержать точку. echo $ PATH /usr/bin:/usr/X11R6/bin:/usr/bin/X11:.

2) Конец строки вашего файла должен быть unix, \ n. По крайней мере, ваша строка shebang содержит точно ваш путь perl, заканчивающийся \ n.

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