получить вывод сценария perl из bash и выйти - PullRequest
2 голосов
/ 15 апреля 2011

Из скрипта bash, как я могу выполнить скрипт perl, получить выходные данные и выйти, если значение равно 0?Также в скрипте perl как вернуть значение, просто вернуть или распечатать?

Ответы [ 3 ]

5 голосов
/ 15 апреля 2011
#!/bin/bash

perl-script args && exit

Если вы хотите продолжить работу, возвращаемое значение будет в $?

Обратите внимание, что существует различие между значением, возвращаемым сценарием perl, и выводом сценария. Чтобы получить выходные данные скрипта, используйте оператор $ ():

#!/bin/bash
output=$(perl-script args)

echo The perl script returned $?
echo The output of the script was $output

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

Чтобы получить код возврата, используйте функцию exit.Пример:

Скрипт Perl:

if ($success) {
    $return_value = 0;
} else {
    $return_value = 1;
}
exit($return_value);

Скрипт Bash:

perl scriptname args > outfile && exit

Предполагается, что вы хотите выйти, если возвращаемое значение скрипта Perl равно 0 иВы хотите сохранить выходные данные сценария Perl в outfile.Если возвращаемое значение не равно нулю, оно сохраняется в $?, вы можете сохранить это значение в переменной, если хотите.

1 голос
/ 15 апреля 2011

Ваш Perl-скрипт: foo.pl

#!/usr/bin/perl
# do something and then
exit 1;

А внутри вашего bash-скрипта foo.sh:

#!/bin/bash
# do something and then call perl script
perl foo.pl

# check return value using $?
echo "perl script returned $?"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...