Linux/Unix Shell Scripting - ps aux|grep xmms|grep -v grep

 
Vista:
sin imagen de perfil

ps aux|grep xmms|grep -v grep

Publicado por Marcela (6 intervenciones) el 21/09/2006 03:21:21
Hola a todos saludos chicos y chicas...
Buen soy de nuevo yo aqui con un problemita de un programa que estoy haciendo un script que te permita determinar si un proceso esta activo o no, por ejemplo si xmms esta activo por medio de esta linea que respondieron en un post anterior:

ps aux|grep xmms|grep -v grep

ahora la salida la estoy guardando en una variable, para despues compararla. pero a la hora de la comparacion no hace nada, es decir no compara lo que tiene...

Alguien me podria orientar por favor?? no se si no puse bien mi comparacion en el if , o que pasa...

a continuacion pongo mi codigo

resultado0=`ps aux|grep xmms|grep -v grep`
if [ ! -p resultado0 ]; then #tambien prove con estas lineas para la comparacion, pero no me resulta nada...

#if [ resultado0 != " "]; then
#if [ resultado0 != ´´]; then

echo "xmms ya esta activo"

else
echo "xmms necesita ser ejecutado!"
sleep 5
xmms

fi

vamos no hace la comparacion, y mi pregunta es por que en la varible resultado0 no se guarda nada??
la variable la mando a imprimir y si me regresa un valor si el proceso xmms esta activo, pero si no lo esta obviamente no imprime nada, cual debe ser, pero al momento de que entra esa variable en el if no compara ....

1000 gracias por su ayuda oajala me puedan orientar, ya busque en en la red pero no encuentro nada claro...

bye besos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ps aux|grep xmms|grep -v grep

Publicado por n0str0m0 (180 intervenciones) el 21/09/2006 12:14:27
Tienes algunos fallos, como por ejemplo:

- Al referenciar las variables, debes anteponer un $ al nombre
- Es importante que dejes un espacio que separe la expresión de los corchetes (tanto al comienzo como al final)
- Lo del -p, según mi manual indica si el fichero en cuestión es un pipe... y eso no es en absoluto lo que andas buscando.

Prueba con esto:

resultado0=`ps aux|grep xmms|grep -v grep`

echo $resultado0

if [ "$resultado0" != "" ]; then
echo Se está ejecutando
else
echo No se está ejecutando
fi

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar