[devel] Re: ... bash

Sviatoslav Sviridov =?iso-8859-1?q?svd_=CE=C1_altlinux=2Eru?=
Чт Янв 12 20:05:46 MSK 2006


Vitaly Ostanin wrote on 1/12/2006 5:10 PM:
>>>> while read var; do
>>>> ...
>>>> done < infile
>>> А как то же самое сделать для переменной (содержащей список
>>> строк) вместо infile ? У меня не заработал ни один из вариантов.
>> ls -d1| \
>> while read l
>> do
>> 	ls -l "$l"
>> done
>
> Исходная задача в изменении глобальной переменной внутри while. В
> этом примере while после |, и переменные родительскому процессу
> не возвращаются.
>
> Из
> http://www.tldp.org/LDP/abs/html/
> я так понял, что единственный вариант - дописывание значений
> внутри while в файл, и потом чтение этого файла родительским
> процессом.
Ну почему же...
Извините, пропустил начало дискуссии... но может угадаю чего надо? ;)

Из процитированного понял, что надо чтобы while выполнялся в
родительском процессе и при этом читал вывод другого процесса? что-то
типа вот этого:

$ list="line1
> line2
> line3"
$ a=qqq
$ while read l; do a="$l"; done < <(echo "$list")
$ echo $a
line3

Так пойдет?

-- 
Best Regards,
Sviatoslav Sviridov




Подробная информация о списке рассылки Devel