Здравствуйте!
Вопрос начинающего, возможно глупый.
При написании скриптов на bash и perl возникла необходимость запускать из скриптов какие-то внешние скрипты или программы, а так же какие-то встроенные функции, так вот - как правильно передать результат их выполнения в основной скрипт?
Я смог придумать только дурацкую конструкцию, когда вызываемый скрипт выводит информацию в файл, а основной потом его открывает и оттуда получает данные))Пример:
например perl
system(date);
Вот как мне это не на экран вывести, а в переменную записать?или bash:
скрипт 1
/home/mike/bla_bla.sh &скрипт 2
pid = $$Как вернуть в родительский скрипт это значение?
Или хотя бы по каким ключевым словам искать на эту тему в гугле)))
В шелле попробуй:OUT="$(ls)"
или
OUT="`ls`"
В переменной OUT будет всё что ls выведет на stdout
$var = `date`;
sh:value=`command`;
или сразу передавай поток дальше:
command | othercommand
perl:
open(COMMAND, 'command|');
while(my $line = <COMMAND>) {
print $line;
}
close(COMMAND);опять же
$var = `command`;
>скрипт 1
>/home/mike/bla_bla.sh &
>
>скрипт 2
>pid = $$Конкретно для этого случая - pid потомка всегда известен родителю.
/home/mike/bla_blash &
pid=$!
echo "Forked $pid, now waiting it to finish"
wait $pid