URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5312
[ Назад ]

Исходное сообщение
"Обработка stdin в shell скрипте"

Отправлено Чапаев , 04-Апр-06 14:43 
Здравствуйте!
Прошу прощения за возможные ошибки в терминологии.
Имеется программа, которая выдает на stdout текстовый поток, который я хочу обработать shell  скриптом.
Скажите, как мне заставить например, grep, запущенный в скрипте обрабатывать данные из программы.
Попробую пояснить
например, вывод программы names
$./names
1 - petya
2 - kolya
3 - vasya
$

я могу сделать например так
$./names | grep vasya
3 - vasya
$

но как мне сделать так
$./names | myscript.sh
и соответсвенно обработать вывод ./names внутри скрипта???
Никак не могу найти, очень прошу помочь и заранее благодарю


Содержание

Сообщения в этом обсуждении
"Обработка stdin в shell скрипте"
Отправлено vic , 04-Апр-06 15:11 
>но как мне сделать так
>$./names | myscript.sh
>и соответсвенно обработать вывод ./names внутри скрипта???
>Никак не могу найти, очень прошу помочь и заранее благодарю

man 1 read
или тут http://www.opennet.ru/man.shtml?topic=read&category=1&russian=5


"Обработка stdin в shell скрипте"
Отправлено madskull , 04-Апр-06 22:06 
>>но как мне сделать так
>>$./names | myscript.sh
>>и соответсвенно обработать вывод ./names внутри скрипта???
>>Никак не могу найти, очень прошу помочь и заранее благодарю
>
>man 1 read
>или тут http://www.opennet.ru/man.shtml?topic=read&category=1&russian=5

можно проще. Внутри скрипта пишется
cat | grep ...


"Обработка stdin в shell скрипте"
Отправлено Vic , 05-Апр-06 12:04 
>>>но как мне сделать так
>>>$./names | myscript.sh
>>>и соответсвенно обработать вывод ./names внутри скрипта???
>>>Никак не могу найти, очень прошу помочь и заранее благодарю
>>
>>man 1 read
>>или тут http://www.opennet.ru/man.shtml?topic=read&category=1&russian=5
>
>можно проще. Внутри скрипта пишется
>cat | grep ...

Тогда еще проще ;) Внутри скрипта пишется
grep ...

P.S. Вообще-то зависит от того что в скрипте делается, grep автор мог для примера привести.


"Обработка stdin в shell скрипте"
Отправлено Suvorov_A , 05-Апр-06 17:24 
Подкажите кто-нибудь знает как получить PID запущенной программы в фоновом режиме в Perl?

В shelle делаю

program &
echo $! # В $! хранится PID последнего запущенного в фоне процесса.

делаю тоже на perl:
`program &`;
`echo $!`;
Но почему-то нет резутьтата.
кто что может посоветовать?


"Обработка stdin в shell скрипте"
Отправлено procool , 26-Авг-09 12:57 
>[оверквотинг удален]
>
>program &
>echo $! # В $! хранится PID последнего запущенного в фоне процесса.
>
>
>делаю тоже на perl:
>`program &`;
>`echo $!`;
>Но почему-то нет резутьтата.
>кто что может посоветовать?

$pid = fork;
exit if $pid;
die "Couldn't fork: $!\n" unless defined($pid);
# Стать лидером группы:
$pid = POSIX::setsid() or die "Can't start a new session\n";