Вызов сценария perl в качестве команды оболочки - PullRequest
0 голосов
/ 01 апреля 2011

Я хочу вызвать свой Perl-скрипт как команду из командной строки.Например, допустим, у меня есть Perl-файл, подобный следующему

#!/usr/local/bin/perl -w
@args =("mvn","package");
    system(@args) == 0
    or die "system @args failed"

Я не могу назвать это с помощью package.pl

Я попытался сделать следующее

#!/bin/sh
  eval 'exec /bin/perl –x -S $0 ${1+"$@"}'
    if 0; 
#!/usr/local/bin/perl -w
@args =("mvn","package");
    system(@args) == 0
    or die "system @args failed"

, а затемНазовите файл 'package'. Do chmod для пакета

Когда я пытаюсь запустить пакет, я получаю сообщение об ошибке "Не удается открыть скрипт perl [] x: Нет такого файла или каталога

Может кто-нибудь, пожалуйста, укажите мне, как правильно это сделать ??

Спасибо

Neeraj

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Измените имя, которое вы хотите использовать, и сделайте его исполняемым:

cp package.pl package
chmod +x package

Запустите его:

package

или:

./package
2 голосов
/ 01 апреля 2011

Изменил одинарные кавычки на двойные и избегал внутренних двойных кавычек.Кроме того, кажется, что есть некоторые проблемы с путями.Попробуйте вызвать ваш скрипт с абсолютным путем.Я попытался добавить "./", и это сработало:

#!/bin/sh

echo "This is shell"

eval "exec /usr/bin/perl -x -S ./$0 ${1+\"$@\"}"
   if 0;

#!/usr/bin/perl -w
print "This is Perl\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...