Мне дали задание для процессов печати, которые используют 'x%' или больше памяти каждые 10 секунд.Значение x% будет получено из аргумента при выполнении файла.
(EG ./processes.sh 8 будет печатать все процессы, используя 8% или более памяти каждые 10 секунд.)
Я понятия не имею, как сортировать процессы по определенному параметру памяти.Я знаю, как сортировать процессы в порядке возрастания или убывания, но не умею печатать только выбранные процессы, которые соответствуют моим критериям.Вот фрагмент моего кода:
processes()
{
while :
do
date
echo "Processes occupying $1% of memory: "
ps -o pid,user,%mem ax|sort -n -b -k3 -r|pgrep -f1 "$1"
sleep 10
done
}
processes $1
Я думал, что pgrep мог бы сделать это, но я думаю, что я либо отформатировал его неправильно, либо он просто не работает.
В идеале, вывод должен выглядеть так:
Processes occupying 8% or more memory:
11452 kelly1653 13.6%
93612 buckley0003 29.6%
Любые подсказки для меня?Я действительно расстроен.Заранее спасибо!