2011-01-22 10 views
9

私はIRBを使ってスクリプトを実行してから、インタラクティブなプロンプトを出したいと思います。私はpython -i xy.pyでPythonでこれを行いますが、実行後にirb xy.rbが終了します。pythonのIRBアナログ-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 

答えて

9
irb -r xy.rb 

それは単にあなたの通常のIRBプロンプトを与える前に言及したファイルが必要です。

+4

'-r'や' require'を使っても、スクリプトのローカル変数にアクセスすることはできません。トップレベルの実行環境で定義されていてもそうです。 – Kelvin

+0

@Kelvinこれはなぜですか? – hso

+0

@hsoそれはルビーのスコープルールのためです。 rubyでファイルを 'require'または' load'すると、そのファイルの最上位にあるローカル変数は、そのスクリプトの "spill out"(つまり、アクセスできない)ことはありません。これは 'irb'にのみ適用されるのではなく、あるスクリプトが別のスクリプトを要求するときにも適用されます。あなたはこれを回避するために 'eval'を使うことができますが、バインディングを混乱させる必要があります... – Kelvin