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" <[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] VS> -- VS> Faithfully yours, VS> Vladimir Skubriev VS> -- VS> To UNSUBSCRIBE, email to [email protected] VS> with a subject of "unsubscribe". Trouble? Contact [email protected] VS> Archive: http://lists.debian.org/[email protected] -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

