разбросать по переменным строку (shell)

существует ли красивый способ раскидать содержимое строки по переменным, без цикла и башизмов, в шеле ?

к примеру ps -eo pid,size,comm –sort -size –no-headers|head -1 выведет самый жрущий процесс " 743 569388 firefox"

как лучше всего раскидать вывод по переменным, типа pid=743 mem=569388 name=firefox ?
grayich
раскидать содержимое строки по переменным, без цикла и башизмов, в шеле ?
Не понятно - без использования скрипта, просто используя командную строку?
Если так, то красиво и просто не будет (будет очень длинная команда), имхо удобнее написать скрипт.

PS - пример работы скрипта
---> ~/ttt
pid=1120 mem=1317036 name=firefox
Ошибки не исчезают с опытом - они просто умнеют
eval $(ps -eo pid,size,comm --sort=size|tail -1| awk '{print "pid="$1" mem="$2" name="$3}')

p.s
в es-shell будет немного красивее
(pid mem name) = `{ps -eo pid,size,comm -k size|tail -1}
ps -eo pid,size,comm --sort -size --no-headers|head -1|(read pid mem name; echo "mem=$mem pid=$pid name=$name")
Только в родительский процесс вы эти переменные не передатите. Нужно их использовать в этой же команде.
точно! про eval то и забыл )\

в баш конечно удобно, этакий split()
arr=($(ps -eo pid,size,comm --sort -size --no-headers|head -1))
echo "p1=${arr[0]} p2=${arr[1]} p3=${arr[2]}"
Вместо –no-headers|head -1 удобнее использовать awk NR==2

PS - имхо, удобнее все-таки использовать скриптик - всегда можно и расширить/дополнить/изменить и повесить на комбинацию клавиш

EDIT 1 - red, ты как всегда в части команд что то интересное выкинешь, если честно, то про eval я то же забыл, так как практически не использую.
Ошибки не исчезают с опытом - они просто умнеют
grayich
echo "p1=${arr[0]} p2=${arr[1]} p3=${arr[2]}"

еще немного о es-shell
если нужно как массив то еще проще
z = `{ps -eo pid,size,comm -k size|tail -1}

после чего
echo $z(3)
введет firefox
Странно, но приведенная вами команда у меня вообще не работает :) В таком виде:
ps -eo pid,size,comm --sort=-size --no-headers|head -1
да.
Тогда получается как-то так:
TMPVAR=$(ps -eo pid,size,comm --sort=-size --no-headers|head -1)
pid=$(echo $TMPVAR|cut -f1 -d' ')
size=$(echo $TMPVAR|cut -f2 -d' ')
name=$(echo $TMPVAR|cut -f3- -d' ')
red, у меня получилось имя "Web Content", т.е. в массиве 4 элемента разделенных пробелами.
anode
Странно, но приведенная вами команда у меня вообще не работает
ну хз, а у меня чего-то не работает команда что привел ТС, пришлось причесывать по своему )
 
Зарегистрироваться или войдите чтобы оставить сообщение.