Ejecutar comando externo desde ruby?

Buenas, tengo que hacer un procedimiento que ejecute un programa
externo,
y lo tengo
así:
c:loquesea> ruby proceso.rb bd.sql

proceso.rb:

ruta = ARGV[0]
archivo = File.open(ruta)
f = IO.popen("mysqldump "+archivo)

puts(“mas cosas”)

entonces, me gustaría saber como hacer para que “mas cosas” salga en
pantalla cuando se termine de ejecutar el proceso y no justo
despuésde que se empiece a ejecutar.
Ah, y también me gustaría saber si es posible sacar en pantalla lo que
hace mysqldump en vez de ejecutarlo en segundo plano

Gracias

On 2/2/07, Luis V. [email protected] wrote:

puts(“mas cosas”)

entonces, me gustaría saber como hacer para que “mas cosas” salga en
pantalla cuando se termine de ejecutar el proceso y no justo después
de que se empiece a ejecutar.
Ah, y también me gustaría saber si es posible sacar en pantalla lo que
hace mysqldump en vez de ejecutarlo en segundo plano

Creo que la forma de hacerlo es con `` (son unas comillas raras):

resultado = mysqldump #{archivo}

BTW, recordá que ese File.open está dejando abierto el archivo. Para
leer todo el contenido de una, usá File.read. Si querés trabajar con
el archivo sin preocuparte por cerrarlo, entonces:

File.open(ruta, ‘r’) do |file|
algo = file.read
end

Si el bloque falla, se ocupa de cerrar el archivo por vos.

Saludos!

On Feb 2, 2007, at 2:40 PM, Luis V. wrote:

f = IO.popen("mysqldump "+archivo)

puts(“mas cosas”)

entonces, me gustaría saber como hacer para que “mas cosas” salga en
pantalla cuando se termine de ejecutar el proceso y no justo después
de que se empiece a ejecutar.
Ah, y también me gustaría saber si es posible sacar en pantalla lo que
hace mysqldump en vez de ejecutarlo en segundo plano

system “mysqldump #{archivo}”

– fxn

ok, muchísimas gracias