The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вопрос про результаты функций/операций"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"Вопрос про результаты функций/операций"  +/
Сообщение от mkotov email(ok) on 05-Авг-10, 23:44 
Здравствуйте!
Вопрос начинающего, возможно глупый.
При написании скриптов на bash и perl возникла необходимость запускать из скриптов какие-то внешние скрипты или программы, а так же какие-то встроенные функции, так вот - как правильно передать результат их выполнения в основной скрипт?
Я смог придумать только дурацкую конструкцию, когда вызываемый скрипт выводит информацию в файл, а основной потом его открывает и оттуда получает данные))

Пример:
например perl
system(date);
Вот как мне это не на экран вывести, а в переменную записать?

или bash:
скрипт 1
/home/mike/bla_bla.sh &

скрипт 2
pid = $$

Как вернуть в родительский скрипт это значение?

Или хотя бы по каким ключевым словам искать на эту тему в гугле)))

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вопрос про результаты функций/операций"  +/
Сообщение от phpcoder email(ok) on 06-Авг-10, 08:19 
В шелле попробуй:

OUT="$(ls)"

или

OUT="`ls`"

В переменной OUT будет всё что ls выведет на stdout


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Вопрос про результаты функций/операций"  +/
Сообщение от cirus on 06-Авг-10, 14:27 
$var = `date`;
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Вопрос про результаты функций/операций"  +/
Сообщение от аноним on 06-Авг-10, 17:24 
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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру