Невозможно вызвать Perl-скрипт из сценария оболочки - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь вызвать Perl-сценарий из сценария оболочки, и код выглядит так, как показано ниже ...

сценарий оболочки test_sh

#Call the script
test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE}
if [ $? -ne 0 ]
  then
    OP1ExitStatus -6
fi

при выполнении появляется сообщение об ошибке ниже: *Разрешения 1006 *

./test_sh[142]: test2.pl:  not found
Failed in test_sh

для обоих файлов равны 755.

Но когда я и вызываю test2.pl напрямую из командной строки, передав все аргументы, он запускается успешно.Я пробовал также с приведенной ниже командой:

#Call the script
perl test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE}
if [ $? -ne 0 ]
  then
    OP1ExitStatus -6
fi

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

Ответы [ 4 ]

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

Из командной строки вы вызываете perl test2.pl напрямую. Из сценария вы предполагаете, что (1) test2.pl является исполняемым и (2) . где-то в $PATH. Я бы использовал прямой perl вызов в скрипте, по крайней мере сейчас.

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

Ваш сценарий оболочки не может найти ваш test2.pl.Вам нужно указать полный путь к test2.pl в вашем скрипте оболочки или убедиться, что он указан в вашем $ PATH.

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

Это обычно означает, что путь к perl в строке shebang в верхней части скрипта Perl неверен (при условии, что файл имеет разрешение на выполнение для вас).

Попробуйте использовать:

#!/usr/bin/env perl
0 голосов
/ 01 апреля 2011

проверьте свой шебанг, например #!/bin/bash.Вы также можете попробовать использовать полный путь к исполняемому файлу Perl.

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