LINUX.ORG.RU

Как в bash массив занести построчно вывод команды?


1

0

Подскажите, пожалуйста, что-то никак не соображу.

Пытяюсь сделать так, но почему-то вывод кавычек не помогает. Экранирование пробелов тоже.

names=( `cat ~/ff | sed "s/str1.*//" | sed "s/[0-9\t\ ]*//" | while read i; do echo \"$i\"; done` )

Как вообще вывод из нескольких строк некоторой команды занести в массив на bash, чтобы в каждом элементе хранилась одна строка?

★★

почему бы не пойти извращенским путем?

num=0; cat ~/ff|sed «s/[0-9\t\ ]*//»| sed «s/str1.*//» | while read $string; do export names[$num]=«$string»; num = $num+1; done

NekoExMachina ()
$ eval names=(`cat /etc/passwd | sed 's/^/"/; s/$/"/'`)
$ echo ${names[28]}
haldaemon:x:108:112:Hardware abstraction layer:/var/run/hald:/bin/false
sdio ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.