Re: bash и область видимости переменной в while
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
Reply to: