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
'-r'や' require'を使っても、スクリプトのローカル変数にアクセスすることはできません。トップレベルの実行環境で定義されていてもそうです。 – Kelvin
@Kelvinこれはなぜですか? – hso
@hsoそれはルビーのスコープルールのためです。 rubyでファイルを 'require'または' load'すると、そのファイルの最上位にあるローカル変数は、そのスクリプトの "spill out"(つまり、アクセスできない)ことはありません。これは 'irb'にのみ適用されるのではなく、あるスクリプトが別のスクリプトを要求するときにも適用されます。あなたはこれを回避するために 'eval'を使うことができますが、バインディングを混乱させる必要があります... – Kelvin