Se você quiser matar todos dos trabalhos mhaque , é ainda mais simples:
pkill -9 mhaque
( -9 é o sinal para enviar, neste caso eu escolhi SIGKILL , mude de acordo com as suas necessidades).
Além disso,
pidof mhaque
retorna a lista simples dos jobs PIDs, com mais nada. Você pode usá-lo também como segue
kill -9 $(pidof mhaque)
que produz o mesmo efeito que o primeiro comando. Tudo isso é muito mais fácil do que o script. Por exemplo,
$ vlc fulvio.mkv &> /dev/null &
[1] 28006
$ vlc fulvio.mkv &> /dev/null &
[2] 28028
$ pidof vlc
28028 28006
$ pkill -9 vlc
$ ps ax | grep vlc
28054 pts/18 S+ 0:00 grep --color=auto vlc
[1]- Killed vlc fulvio.mkv &> /dev/null
[2]+ Killed vlc fulvio.mkv &> /dev/null
EDITAR :
em resposta ao esclarecimento contido no comentário, o comando
ps -W | awk '{print $2}' | cut -d"-" -f2
produz a lista simples de PIDs de jobs. Você pode gravá-los em um arquivo ou processá-los diretamente como
kill -9 $(ps -W | awk '{print $2}' | cut -d"-" -f2)
EDIT2
Estou um pouco surpreso que isso não funcione como esperado, porque o comando acima é apenas Bash padrão. Em qual sistema você está, exatamente? De qualquer forma, você pode tentar:
for i in $(ps -W | awk '{print $2}' | cut -d"-" -f2); do kill -9 $i; done