これは、答えを見つけるのが驚くほど難しい質問でした。
(いくつかの質問は、少なくとも似たようなことを尋ねているようです:
しかし、私はそれらのどれからも必要なものを得ることができませんでした.)
また、使用すべき正確な用語が少しわからないので、ここでは具体的に説明します。
Python シェルで IDLE を使用しているとします。
IDLE のテキスト エディタ ウィンドウの 1 つが開いていて、その中にスクリプト "example.py" があります。
F5 キーを押すと、Python シェルが起動し、"example.py" のすべての行をシェルに 1 行ずつ入力した場合とまったく同じことを行います。
機能的には、すべての行を自動的に入力し、画面を乱雑に表示することはありません。(また、これを行うたびにシェルを新しい状態にリセットしますが、現時点ではそれは重要なポイントではありません。シェルの状態をリセットしないオプションがあると便利な場合があります。 )
その結果、シェルで遊ぶことができるようになり、実行したばかりのスクリプトに含まれていたすべての関数や変数などがすべてそこにあるということになります。
しかし、irbでは...
同じ効果を得るにはどうすればよいですか?
たとえばirb example.rb
、Windows コンソールで (同等の Ruby スクリプトを) 試してみたところ、文字どおり 1 行ずつ irb に入力され、画面に吐き出され、自動的に Windows コマンド プロンプトに戻ります。
(それが私が望んでいたように機能したとしても(ここで私が望むことをもっと行うオプションフラグのある引数がありますか?)、テキストエディターからコンソールウィンドウにaltキーを押しながら移動する必要があります、コマンドとファイル名を入力します。これは、単に F5 を押すよりも劣ります。)
私が言いたいことを明確にしていることを確認するために、具体的な例を次に示します。
1) 「example.py」の Python スクリプト 2) シェルで実行し、シェルで何かを実行する例 (実際のシェルからコピーして貼り付けたもの)
3) その Python スクリプトと同等の Ruby スクリプト 4) repl.it にある不器用で遅いオンライン インタープリターで実行し、その irb シェルでまったく同じことを実行する例(再度、コピーして貼り付けます)
1) example.py :
x = "some value you don't want to keep reassigning to this variable"
y = "some other value like that"
def some_function(var):
return "do something complicated with `"+var+"`"
print("example.py just ran")
2) Python シェル:
Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
example.py just ran
>>> x
"some value you don't want to keep reassigning to this variable"
>>> y
'some other value like that'
>>> print(some_function(x))
do something complicated with `some value you don't want to keep reassigning to this variable`
>>> x = "a frog"
>>> print(some_function(x))
do something complicated with `a frog`
>>> print("gonna run example.py again")
gonna run example.py again
>>> ================================ RESTART ================================
>>>
example.py just ran
>>> print("x is back to: `\""+x+"\"`")
x is back to: `"some value you don't want to keep reassigning to this variable"`
3) example.rb :
x = "some value you don't want to keep reassigning to this variable"
y = "some other value like that"
def some_function var
"do something complicated with `#{var}`"
end
puts "test.rb just ran"
4) repl.itのオンライン Ruby irb シェルのこと:
Ruby 1.8.7 (2008-05-31 patchlevel 0) [x86-linux]
[GCC 4.2.1 (LLVM, Emscripten 1.5, Emscripted-Ruby)]
test.rb just ran
=> nil
x
=> "some value you don't want to keep reassigning to this variable"
y
=> "some other value like that"
puts some_function x
do something complicated with `some value you don't want to keep reassigning to this variable`
=> nil
x = "a frog"
=> "a frog"
puts some_function x
do something complicated with `a frog`
=> nil
puts "gonna run this script again..."
gonna run this script again...
=> nil
test.rb just ran
=> nil
puts "x is back to: `\"#{x}\"`"
x is back to: `"some value you don't want to keep reassigning to this variable"`
=> nil