Re: bash и область видимости переменной в while
Сделал так:
while read line
do
if echo "$line" | grep -q 'Installed Size'
then
module="$( echo "$line" | sed -r 's/(^.*: )(.*)(\(.*$)/\2/' )"
printf "MODULE: $module\n"
ram_mods="$ram_mods $module"
fi
done < <(echo "$dmidecode_t6_out")
Заработал.
Что делают внутренние скобки ?
Без них ругался.
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
--
Faithfully yours,
Vladimir Skubriev
Reply to: