LINUX.ORG.RU
ФорумAdmin

Вопрос про perl и bash


0

0

Подскажите, есть bash-скрипт,он в свою очередь вызывает другой perl-скрипт, затача такова чтобы перловый скрипт мог как-то передать выходной параметр баш-скрипту. Пробовал через system("export PARAM=z"); не выходит, почему перл не выполняет этого !?


может проще через командную строку? 

system("bash script.sh param1 param2");

если сильно хочется через окружение, то сделать это можно вот так:

{
    local $ENV{"VAR1"} = "value1";
    system("bash script.sh");
}

phoenix ★★★★
()
Ответ на: комментарий от sensor

Попробуйте всю нужную информацию выводить в perl-скрипте на обычный STDOUT, а из bash-а его запускайте так:
result=`my_cool_perl_script.pl`
После этого останется только проанализировать содержимое $result и все.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Поддерживаю.

Можно вывести на stdout команды bash_a (var1=1; var2=2; ...) и выполнить их в исх. скрипте.

eval `/path/to/script.pl`

sdio ★★★★★
()
Ответ на: комментарий от spirit

незнаю, но не получается, в перл-скрипте print "test", должен попасть в result ?

sensor
() автор топика
Ответ на: комментарий от sdio

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

sensor
() автор топика
Ответ на: комментарий от sensor

$ cat script.sh

#! /bin/sh

A=1
echo "before : A=$A"
eval `./script.pl`
echo "after  : A=$A"
#--------------------

$ cat script.pl

#! /usr/bin/perl

print "A=2";
#--------------------

$ chmod +x script.sh script.pl
$ ./script.sh
before : A=1
after  : A=2

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.