I’ve a script where I’ve to check if a process is running by its name and I’m doing it using ps and grep. The problem is that I’ve to grep many things to avoid to find false positive.
By now, I’ve a grep chain that looks as follow:
ps -ef | grep -i $process_name | grep -i perl | grep -v do_all | grep -v grep
Four greps. Three of them are there to avoid false positive.
I would like to know if there’s a way to avoid such ‘piping chain’ and use a single grep to achieve the same result.
Though some of you could answer that there are cleaner way to find out if a process exists, I would like the same to have an answer to this question, just to better understand the usage of the grep command.
There’s no real reason to avoid chaining them, is there?
If you really wanted to you could combine them with | in egrep: