Сделал так:

        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" <[email protected]>:
> 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 [email protected]
> with a subject of "unsubscribe". Trouble? Contact [email protected]
> Archive: http://lists.debian.org/[email protected]

--
Faithfully yours,

Vladimir Skubriev


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Ответить