On Fri, Aug 22 2014, Hugo Florentino wrote: > Bueno ya encontré el problema, en realidad era una tontería. > > El comando ps devuelve los pid sin numero delante solo si coincide que > en la lista de procesos wget es uno de los últimos, pero en caso > contrario hay espacios delante, de modo que utilicé sed como una > alternativa más segura para obtener el pid.
Cierto, «ps» alinea los números a la derecha, adicionando espacios al principio. > En fin, que el script quedó así: > > #!/bin/sh > > WGET_PROCNUM=$(ps ax | grep -v grep | grep 'wget --limit-rate=' | sed > -r 's/^\s*([0-9]+)\s+.*/\1/') > > if [ ! -z $WGET_PROCNUM ]; then > kill -s SIGTERM $WGET_PROCNUM > fi > > unset $WGET_PROCNUM Esto te dará el mismo tipo de error cuando tengas más de un «wget» corriendo: $ wget -i- & [1] 3178 $ WGET_PROCNUM=$(ps ax opid= ocomm= | sed 's/^\s*//' | grep wget | cut -d" " -f1) $ echo $WGET_PROCNUM 3178 $ [ ! -z $WGET_PIDS ] && echo "¡muere hereje!" ¡muere hereje! Y el hereje morirá de seguro. Pongamos otro hereje: $ wget -i- & [2] 3193 $ WGET_PROCNUM=$(ps ax opid= ocomm= | sed 's/^\s*//' | grep wget | cut -d" " -f1) $ echo $WGET_PROCNUM 3178 3193 $ [ ! -z $WGET_PIDS ] && echo "¡muere hereje!" bash: [: 3178: binary operator expecte $ [ ! -z "$WGET_PIDS" ] && echo "¡muere hereje!" ¡muere hereje! Conclusión: necesitas las comillas o no tendrás inquisición. Servilio -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que est� limpio.
______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l