top сортировка по имени

Утилита top умеет показывать только те процессы чей PID указан в качестве параметра, но указывать при необходимости PID несколько проблемотично, по той простой причине что надо их узнать. Честно говоря, меня это несколько напрягало, поэтому решил это у себя исправить.
#!/bin/sh
for i in $@; do
        NAMES="$NAMES -C $i"
done
if [ "$NAMES" == '' ]; then
        echo 'Введите имена процессов'
        exit 255
fi
PIDS=`ps -o pid --no-heading $NAMES | xargs echo -n | tr ' ' ','`
if [ "$PIDS" == '' ]; then
        echo "процесс \"$*\" не найден"
        exit 1
fi
top -p $PIDS
Сей простой скрипт позволяет указывать в параметрах к нему имена процессов и вызывает top с соответсвующими PID.

UP: Ещё одна классная полезняшка alias psgrep='ps aux | grep $(echo $1 | sed "s/^\(.\)/[\1]/g")'
jetxee 08-12-2008
Полезный скрипт. Я по этой причине, когда хотел найти процесс по имени, обычно использовал htop, где есть поиск по имени (/имя).
Fd 08-12-2008
"проблемотично" и запятые, запятые :)
muhas 08-12-2008
Fd, каюсь грешен =)
jetxee 08-12-2008
Оригинальный вариант у меня не сработал, ругается. Слегка модифицировал, чтобы можно было только по фрагменту имени находить:

http://pastebin.com/f23a41fb9

Например, ntop ba. Возможна ошибка, если процессов слишком много.
muhas 08-12-2008
jetxee, хз мож я что-то специфичное из zsh использовал (уж и не помню в чём там отличия от bash из-за долгого юзания zsh)
на что хоть ругается?

зы. твой вариант мне понравился больше чем мой :)
Олег 08-12-2008
Отличный скрипт есть еще что нибудь в таком виде?
muhas 09-02-2009
Упростил до минимума alias psgrep='ps aux | grep $(echo $1 | sed "s/^\(.\)/[\1]/g")'
val-amart 09-02-2009
pgrep же
muhas 09-02-2009
pgrep только pid показывает, а хочется и cpu mem и прочее посмотреть
Kirikaza 09-03-2009
А ещё есть команда pidof...
muhas 09-03-2009
За pidof спасибо, можно использовать для получения pid процесса в скриптах.