[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash и область видимости переменной в while



А. Понял. Спасибо)

Деревня )

18.02.2014, 11:14, "Artem Chuprina" <ran@ran.pp.ru>:
> Vladimir Skubriev -> Debian-russian  @ Tue, 18 Feb 2014 09:08:37 +0400:
>
>  VS> Сделал так:
>
>  VS>         while read line
>  VS>         do
>  VS>                 if echo "$line" | grep -q 'Installed Size'
>  VS>                 then
>  VS>                 module="$( echo "$line" | sed -r 's/(^.*: )(.*)(\(.*$)/\2/' )"
>  VS>                 printf "MODULE: $module\n"
>  VS>                 ram_mods="$ram_mods $module"
>  VS>                 fi
>  VS>         done < <(echo "$dmidecode_t6_out")
>
>  VS> Заработал.
>
>  VS> Что делают внутренние скобки ?
>
>  VS> Без них ругался.
>
> Которые?  Мои?  Объединяют while и echo "$var" в один процесс, в который
> и идет пайп.  Но без них ругаться не должно.
>
> Или выше вокруг echo?  Это синтаксис такой.  Подстановка вывода процесса
> в качестве файла.
>
>  VS> 17.02.2014, 13:12, "Artem Chuprina" <ran@ran.pp.ru>:
>
>>>  Vladimir Skubriev -> Debian-russian  @ Mon, 17 Feb 2014 11:52:06 +0400:
>>>
>>>   VS> dmidecode_t6_out="$( dmidecode -t 6)"
>>>   VS>
>>>   VS>
>>>   VS>         echo "$dmidecode_t6_out" | while read line
>>>   VS>         do
>>>   VS>                 if echo "$line" | grep -q 'Installed Size'
>>>   VS>                 then
>>>   VS>                 module="$( echo "$line" | sed -r 's/(^.*: )(.*)(\(.*$)/\2/' )"
>>>   VS>                 printf "Founded MODULE: $module\n"
>>>   VS>                 ram_mods="$ram_mods $module"
>>>   VS>                 fi
>>>   VS>         done
>>>   VS>
>>>   VS> printf "Modules: $ram_mods\n"
>>>   VS>
>>>   VS> Почему последний printf печатает только Modules без содержания переменной $ram_mods ?
>>>
>>>  Да, помогает извращение вида
>>>
>>>  var=$(echo -e "qqq\nwww" | ( while read line; do var="$var $line"; done; echo "$var" ))
>>>
>>>  Внутренние скобки существенны.
>>>
>>>  --
>>>  To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
>>>  with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>>>  Archive: [🔎] 87ob266r3s.fsf@wizzle.ran.pp.ru">http://lists.debian.org/[🔎] 87ob266r3s.fsf@wizzle.ran.pp.ru
>
>  VS> --
>  VS> Faithfully yours,
>
>  VS> Vladimir Skubriev
>
>  VS> --
>  VS> To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
>  VS> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>  VS> Archive: [🔎] 16811392700117@web21m.yandex.ru">http://lists.debian.org/[🔎] 16811392700117@web21m.yandex.ru
>
> --
> To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] 8761oc7v1r.fsf@wizzle.ran.pp.ru">http://lists.debian.org/[🔎] 8761oc7v1r.fsf@wizzle.ran.pp.ru

--
Faithfully yours,

Vladimir Skubriev


Reply to: