2011-01-22 31 views
9

Tôi muốn sử dụng IRB để chạy tập lệnh sau đó cung cấp cho tôi lời nhắc tương tác. Tôi làm điều này với python -i xy.py trong Python, tuy nhiên irb xy.rb thoát sau khi thực thi.Tương tự IRB của 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 

Trả lời

9
irb -r xy.rb 

Nó chỉ đơn giản đòi hỏi các tập tin đã đề cập trước đem lại cho bạn một dấu nhắc IRB thông thường.

+4

Hãy nhớ rằng, bằng cách sử dụng '-r' hoặc' require' sẽ không cung cấp cho bạn quyền truy cập vào các biến cục bộ của tập lệnh, ngay cả khi chúng được xác định ở môi trường thực thi cấp cao nhất. – Kelvin

+0

@Kelvin tại sao đây là? – hso

+0

@hso Đó là vì quy tắc phạm vi của ruby. Khi bạn 'require' hoặc' load' một tệp trong ruby, các biến cục bộ ở cấp cao nhất của tệp đó không "tràn ra" (tức là không thể truy cập) của tập lệnh đó. Điều này không chỉ áp dụng cho 'irb', mà còn khi một kịch bản' yêu cầu một tập lệnh khác. Bạn có thể sử dụng 'eval' để giải quyết vấn đề này, nhưng sau đó bạn cần lộn xộn với các ràng buộc ... – Kelvin

Các vấn đề liên quan