2010-04-29 12 views

Respuesta

21

Está buscando tubos. Aquí está un ejemplo:

# This example runs the netstat command via a pipe 
# and processes the data in Ruby as it come back 

pipe = IO.popen("netstat 3") 
while (line = pipe.gets) 
    print line 
    print "and" 
end 
+0

Excelente respuesta, muchas gracias! – Ciryon

+0

La salida está realmente almacenada en el búfer hasta que se complete el comando, entonces verá la salida, si no le importa la oportunidad real. – user180574

0

Cuando los métodos/funciones de llamada a los comandos shell del sistema/RUN, el intérprete de freza otro proceso para ejecutarlo y espera a que termine, luego le da la salida.

Incluso si usa subprocesos, lo único que logrará es no dejar que su programa se bloquee mientras se ejecuta el comando, pero aún no obtendrá el resultado hasta que se complete.

Creo que puede lograr eso con las tuberías, pero no estoy seguro de cómo.

@Marcel lo tiene.

Cuestiones relacionadas