/ / Ruby no muestra la salida del proceso interno - ruby

Ruby no muestra el resultado del proceso interno - ruby

Estoy intentando esto en rubí. Tengo un script de shell al que puedo pasar un comando que será ejecutado por el shell después de que se hayan configurado algunas variables de entorno iniciales. Así que en el código ruby ​​estoy haciendo esto ...

# ruby code
my_results = `some_script -allow username -cmd "perform_action"`

El problema es que desde el script "some_script"ejecuta "perform_action" en su propio entorno, no veo el resultado cuando produzco la variable "my_results". Entonces, un ruby ​​pone "my_results" solo me da algunos comentarios iniciales antes de que el script procese el comando "perform_action".

¿Alguna pista de cómo puedo obtener la salida de perform_action en "my_results"?

Gracias.

Respuestas

0 para la respuesta № 1

Los backticks solo capturarán stdout. Si está redirigiendo stdout o escribiendo en cualquier otro controlador (como stderr), no aparecerá en su salida; de lo contrario, debería. Si algo entra en stdout o no no depende de un entorno, solo de la redirección o escritura directa a un controlador diferente.

Intente ver si su script realmente se imprime en stdout desde shell:

$ some_script -allow username -cmd "perform_action" > just_stdout.log
$ cat just_stdout.log

En cualquier caso, esta no es una pregunta de Ruby. (O al menos no lo es si te entendí correctamente). Recibirías la misma respuesta para cualquier idioma.