2011-01-22 10 views
9

Quiero usar IRB para ejecutar un script y luego darme un aviso interactivo. Hago esto con python -i xy.py en Python, sin embargo, irb xy.rb sale después de la ejecución.Análogo IRB de python -i

> python --help 

-i When a script is passed as first argument or the -c option is 
     used, enter interactive mode after executing the script or the 
     command 

Respuesta

9
irb -r xy.rb 

Simplemente se requiere el archivo mencionado antes de darle una pronta IRB normal.

+4

Tenga en cuenta, sin embargo, que el uso de '-r' o' require' no le dará acceso a las variables locales del script, incluso si están definidas en el entorno de ejecución de nivel superior. – Kelvin

+0

@ Kelvin ¿por qué es esto? – hso

+0

@hso Es debido a las reglas de alcance de Ruby. Cuando 'requiere' o 'carga' un archivo en ruby, las variables locales en el nivel superior de ese archivo no se "derraman" (es decir, no son accesibles) de ese script. Esto no solo se aplica a 'irb', sino también cuando un script' requiere' otro. Podría usar 'eval' para evitar esto, pero luego tendría que meterse con los enlaces ... – Kelvin