[opensuse-es] tomar el resutlado de la ejecucion de un comando en un script shell
hola estoy ejecutando desde script shell un comando concretamente esto: /home/bea/jrockit_160_05/bin/java -classpath /home/bea/wlserver_10.3/server/lib/weblogic.jar weblogic.Admin -url server:7001 -username web -password web GETSTATE servidor 2>&1 la ejecución directa de esto genera en pantalla esto: Current state of "server" : RUNNING Mi pregunta es como podría meter esto en una variable y luego saber si me llega la palabra RUNNING dentro? Muchísimas gracias -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-04-20 a las 00:23 +0200, koxkorrita escribió:
Mi pregunta es como podría meter esto en una variable y luego saber si me llega la palabra RUNNING dentro?
La manera típica es tal que así: HORA=`date --iso=ns` con lo que la variable HOLA contiene la salida del comando. Puede contener varias lineas, incluso. Luego con un grep puedes buscar palabras. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkvM38kACgkQtTMYHG2NR9WKPgCeNA0CJ+gUnsD3d1QbR5qawtwG VhUAniTVLL1gv6LRJT8q1yJ3pAa/O9Ju =kgeB -----END PGP SIGNATURE-----
Muchas gracias por tu respuesta, no habia dado con esas comillas. Una más. Si tengo una variable que contiene una cadena del tipo: $VARIABLE="... the server is RUNNING"; como puedo saber si me viene una palabra o no, en este caso RUNNING? estoy haciendo la prueba con grep RUNNING $VARIABLE pero me dice que no existe el fichero, además que gustaria saber como interpreto la salida para saber si existe esa palabra o no. Muchas gracias por la ayuda; de veras -----Mensaje original----- De: Carlos E. R. [mailto:robin.listas@telefonica.net] Enviado el: martes, 20 de abril de 2010 0:57 Para: OS-es Asunto: Re: [opensuse-es] tomar el resutlado de la ejecucion de un comando en un script shell -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-04-20 a las 00:23 +0200, koxkorrita escribió:
Mi pregunta es como podría meter esto en una variable y luego saber si me llega la palabra RUNNING dentro?
La manera típica es tal que así: HORA=`date --iso=ns` con lo que la variable HOLA contiene la salida del comando. Puede contener varias lineas, incluso. Luego con un grep puedes buscar palabras. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkvM38kACgkQtTMYHG2NR9WKPgCeNA0CJ+gUnsD3d1QbR5qawtwG VhUAniTVLL1gv6LRJT8q1yJ3pAa/O9Ju =kgeB -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Tue, 20 Apr 2010 05:54:54 +0200, koxkorrita escribió:
Muchas gracias por tu respuesta, no habia dado con esas comillas.
Una más. Si tengo una variable que contiene una cadena del tipo: $VARIABLE="... the server is RUNNING"; como puedo saber si me viene una palabra o no, en este caso RUNNING? estoy haciendo la prueba con grep RUNNING $VARIABLE pero me dice que no existe el fichero, además que gustaria saber como interpreto la salida para saber si existe esa palabra o no.
Muchas gracias por la ayuda; de veras
*** #! /bin/bash shopt -s nocasematch VARIABLE="The server is RUNNING" if [[ "$VARIABLE" =~ "RUNNING" ]] then echo "está" else echo "no está" fi *** Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 [diferido] On 2010-04-20 05:54, koxkorrita wrote:
Muchas gracias por tu respuesta, no habia dado con esas comillas.
Una más. Si tengo una variable que contiene una cadena del tipo: $VARIABLE="... the server is RUNNING"; como puedo saber si me viene una palabra o no, en este caso RUNNING? estoy haciendo la prueba con grep RUNNING $VARIABLE pero me dice que no existe el fichero, además que gustaria saber como interpreto la salida para saber si existe esa palabra o no.
A ver, pues por ejemplo: echo $VARIABLE | grep RUNNING te va a devolver la linea entera que contenga "RUNNING". Si no la encuentra retornará en blanco. Puedes analizarlo de dos formas: con un if test para ver si el string está en blanco (man test), o bien por el propio código de retorno de "grep", que viene en el manual: EXIT STATUS Normally, the exit status is 0 if selected lines are found and 1 otherwise. But the exit status is 2 if an error occurred, unless the -q or --quiet or --silent option is used and a selected line is found. Note, however, that POSIX only mandates, for programs such as grep, cmp, and diff, that the exit status in case of error be greater than 1; it is therefore advisable, for the sake of portability, to use logic that tests for this general condition instead of strict equality with 2. No se si voy a poder encontrarte un ejemplo, porque ahora mismo estoy sólo con el portátil y no me he copiado mi ficherito con ejemplos de scripts. A ver si encuentro algo [...] a ver, podría ser algo como esto: case $? in 0) ;; encontrado 1) ;; no encontrado 2) ;; error *) ;; otro error esac - -- Cheers / Saludos, Carlos E. R. (from 11.2 x86_64 "Emerald" GM (Minas Tirith)) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iF4EAREIAAYFAkvNYRoACgkQja8UbcUWM1z4MgD/YQQB8CNs2HaFHQSlhateK2pa X+SePpEJVd37+HbE22UA/1rnx0AohMbQwXsnwAWAVSkhWN/NiD3MFlM9SnTyb6Cv =zBvb -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (3)
-
Camaleón
-
Carlos E. R.
-
koxkorrita