• Publicidad

Resultado de rsh

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Resultado de rsh

Notapor miguialberto » 2009-06-08 05:55 @288

Buenas a todos.

Estoy con un programa Perl que una de sus tareas es ejecutar un programa Perl que se encuentra en otra máquina. Para ello he probado los siguientes comandos:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "Executing = [rsh -n $computer_address perl $monitor_path/$script_name_cleaned]\n";
my $rsh_result = `rsh -n $computer_address perl $monitor_path/$perl_monitor_script`;
print "Resultado -> [$rsh_result] - [$?]]\n";
my $rsh_result2 = system("rsh","-n","$computer_address","perl $monitor_path/$perl_monitor_script");
print "Resultado2 -> [$rsh_result2] - [$?]]\n";
my @rsh_result3 = qx(rsh -n $computer_address perl $monitor_path/$perl_monitor_script);
print "Resultado3 -> [@rsh_result3] - [$?]]\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y obtengo los siguientes resultados:
Código: Seleccionar todo
Executing = [rsh -n edc-mart perl /tmp/scripts/edc-mart-test2]
Can't open perl script "/tmp/scripts/edc-mart-test2": No such file or directory
Resultado -> [] - [0]]
Can't open perl script "/tmp/scripts/edc-mart-test2": No such file or directory
Resultado2 -> [0] - [0]]
Can't open perl script "/tmp/scripts/edc-mart-test2": No such file or directory
Resultado3 -> [] - [0]]


El programa script remoto se ejecuta (si estuviera) en la máquina remota. Sin embargo quiero obtener dos valores:

- El resultado de rsh con el mensaje "Can't open perl script "/tmp/scripts/edc-mart-test2": No such file or directory".
- El programa remoto Perl hace un exit() con un string de salida. Algo así como "exit '2 Salida2';". Querría también leerlo.

He estado leyendo, pero no sé cómo hacerlo. ¿Haría falta redirigir la salida del rsh de alguna manera?

¡Gracias por adelantado!
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301

Publicidad

Notapor miguialberto » 2009-06-08 06:28 @311

Hola, soy yo de nuevo!

He cometido un error en el post de antes. El script remoto no hace un exit con un string del tipo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
exit "Mensaje salida";
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


sino que hay un print y luego un exit:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "Mensaje salida";
exit 0;
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Lo que quiero es capturar ese print que se hace a traves de la llamada a rsh...

Gracias de nuevo!
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301

Notapor explorer » 2009-06-08 07:27 @352

Las comillas invertidas hacen lo mismo que qx(): ejecutan el comando, capturan la salida estándar y te la devuelven. system() ejecuta el comando pero solo te devuelve el estado del resultado de la ejecución (un entero).

Yo supongo que si esos mensajes no los capturas es porque están saliendo por la salida estándar de errores.

Ya que, supongo, estás usando un shell para la ejecución de los comandos, podrías pedir una redirección de la salida estándar de errores a la salida estándar, para que también puedas capturar como si viniera todo junto.

Agregando '2>&1' al final de los comandos, conseguimos esa redirección.

Algo así (no probado):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @rsh_result3 = qx(rsh -n $computer_address perl $monitor_path/$perl_monitor_script 2>1&);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor miguialberto » 2009-06-08 07:33 @356

De nuevo, ¡muchas gracias, explorer!

Me deja el output en una variable, así que ya puedo trabajar con ella...

Creo que esta duda era más sobre shell que sobre perl :wink:.

¡Gracias!
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados

cron