Unix - Guardar resultado en variable

 
Vista:

Guardar resultado en variable

Publicado por Dino (9 intervenciones) el 12/08/2013 19:32:58
tengo el siguiente caso, tengo que ejecutar un .sh que ya está definido, el cual pide el status de un servidor, y te arroja un mensaje que puede ser que el servidor está arriba o abajo, ejemplo:

./MetadataServer.sh status

Server is started pid(12345678)
xxxxxxxxxx
yyyyyyyyyy
zzzzzzzzzz

quiero decir que aparte del status, despliega más lineas que considero que no tienen relevancia para lo que necesito, necesito cachar y guardar en una variable las tres primeras palabras, para este caso, "Server is started" y usarlo en un if, si el resultado de mi variable es igual a "Server is started", ejecutará un rutina, con cualquier otra cosa, realizará otra rutina.

entiendo que la salida la puedo cortar por ejemplo asi "| awk '{print $1 $2 $3}",pero lo que no se es como poder usar este valor, mi secuencia es la siguiente

./MetadataServer.sh status

resultado=`echo $resultado | awk '{print $1 $2 $3}'`

# si el resultado es "Server is started"

if [ "$resultado" = "Server is started" ];then

pero resuelta que el resultado no guarda nada, por lo tanto siempre ejecuta lo que está despues de mi else, espero me puedan ayudar. SAludos
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
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Guardar resultado en variable

Publicado por xve (70 intervenciones) el 13/08/2013 09:10:39
Hola Dino, como obtienes el valor de la variable $resultado?
Creo que e problema es que no tiene valor
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

Guardar resultado en variable

Publicado por Tom (178 intervenciones) el 13/08/2013 09:26:58
1
resultado=` ./MetadataServer.sh status | head 1  | awk '{print $1 $2 $3}'`
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

Guardar resultado en variable

Publicado por Dino (9 intervenciones) el 13/08/2013 16:55:07
hola, el problema es que no se como capturar el valor en la variable $resultado, por eso no guarda nada, en la respuesta de Tom, para que sirve "head 1", traté también de tomar así

resultado=` ./MetadataServer.sh status | awk '{print $1 $2 $3}'`

y tampoco tomó el valor, "head 1" me puede ayudar?

trabajo con la distribución unix aix 5.1 me parece.

gracias a ambos
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
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Guardar resultado en variable

Publicado por xve (70 intervenciones) el 13/08/2013 19:43:12
Hola Dino, prueba a poner la ruta entera del archivo a ejecutar... algo así:

resultado=`/home/scripts/./MetadataServer.sh ...

head 1 => coge unicamente la primera linea del resultado
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

Guardar resultado en variable

Publicado por Dino (9 intervenciones) el 13/08/2013 19:50:44
mi problema es que el resultado no lo cacha mi variable y por lo tanto el if lo evalua mal y se va al else
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
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Guardar resultado en variable

Publicado por xve (70 intervenciones) el 14/08/2013 00:26:15
Hola Dino, por eso te he comentado... el problema creo que es que tu script no ejecuta el script MetaDataServer.sh, por eso no coge los valores de la variable.

Prueba a poner la ruta entera.
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

Guardar resultado en variable

Publicado por Dino (9 intervenciones) el 15/08/2013 17:01:18
una linea antes del MetaDataServer.sh esta su ruta, aun así debo poner la ruta completa?
Gracias
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
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Guardar resultado en variable

Publicado por xve (70 intervenciones) el 15/08/2013 21:35:08
Prueba a ponerla... si esta antes o después da lo mismo, cuando tu ejecutas el script no esta puesta.
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