Vladimir Skubriev -> Debian-russian @ Mon, 17 Feb 2014 11:52:06 +0400: VS> VS> 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 ? VS> VS> Спасибо!
Это область видимости не у while, а у |. while запускается в подпроцессе. Но что-то у меня сходу не получилось показать, как правильно. Может, коллеги помогут... Работает sed -e 's/^/zzz/' <(echo -e "qqq\nwww") и работает while read line; do var="$var $line"; done <nic.ru; echo "Var=$var" А вот while read line; do var="$var $line"; done <(echo -e "qqq\nwww"); echo "Var=$var" выдает bash: syntax error near unexpected token `<(echo -e "qqq\nwww")' zsh - аналогично, почему - не понимаю. Подозреваю порядок подстановки... -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

