2011-01-22 6 views
9

Chcę użyć IRB do uruchomienia skryptu, a następnie udziel mi interaktywnego pytania. Robię to z python -i xy.py w Pythonie, jednak irb xy.rb kończy działanie po wykonaniu.IRB analogia 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 

Odpowiedz

9
irb -r xy.rb 

To po prostu wymaga plik wymieniony przed daje normalne IRB wiersza.

+4

Należy jednak pamiętać, że użycie opcji '-r' lub' require' nie zapewni dostępu do zmiennych lokalnych skryptu, nawet jeśli zostaną one zdefiniowane w środowisku wykonawczym najwyższego poziomu. – Kelvin

+0

@ Kelvin, dlaczego to jest? – hso

+0

@hso To z powodu zasad dotyczących zakresu ruby. Gdy "potrzebujesz" lub "wczytaj" plik w ruby, zmienne lokalne na najwyższym poziomie tego pliku nie "rozlewają się" (to znaczy nie są dostępne) tego skryptu. Dotyczy to nie tylko "irb", ale także, gdy jeden skrypt "wymaga innego". Możesz użyć 'eval', aby ominąć to, ale wtedy będziesz musiał zadzwonić z wiązaniami ... – Kelvin