Существует простой способ избавиться от процесса grep:
ps -ax | grep PROCESS_NAME | grep -v ' grep '
(пока процесс, который вы пытаетесь найти, не включает строку " grep "
).
Так что-то вроде этого должно работать в скрипте (опять же, при условии, что работает только одна копия):
pid=$(ps -ax | grep $1 | grep -v ' grep ' | awk '{print $1}')
ddd $1 ${pid}
Если вы называете свой скрипт dddproc
, вы можете вызвать его с помощью:
dddproc myprogramname
Хотя я бы добавил некоторые проверки работоспособности, такие как обнаружение нуля или более одного процесса, возвращенного из ps
, и обеспечение предоставления пользователем аргумента.