pid

Nombre: pid
Autor: point_to_null
Origen: original
Lenguaje: sh
Licencia: gpl
Propósito: Muestra los pids de los procesos que machean la expresión regular pasada como argumento. Si no encuentra ninguno devuelve error.

#!/bin/zsh
ps axu|mawk -v buscado="$*" -v pid="$$" -v shell="$0" '

BEGIN{
    buscado = tolower(buscado)
    split(buscado, lista, " ")
}

$2 != pid && $0 !~ shell{
    linea = tolower($0)
    for (buscado in lista)
        if (linea !~ lista[buscado])
            next
    resultados[++posicion] = $2
}

END{
    for (posicion in resultados)
        printf resultados[posicion] " "
    if (posicion)
    {
        printf "\n"
        exit 0
    }
    else
        exit 1
}
'

Ejemplos de uso:
Puedo conocer el pid de los procesos. e.g.:

pid xmms

Puedo usar el valor de retorno para tomar decisiones automáticamente. e.g.:

pid xmms||xmms2 play

Puedo pasar más de un argumento y serán combinados como adicción lógica:

pid cp home root||sudo cp /home/deimos/web /www