Python中-i的Ruby等效命令是什么?

3

python -i会执行脚本,然后提供一个交互式提示符,仍然可以访问在脚本中声明的变量。Ruby有类似的选项吗?我尝试过require,但似乎在使用它后变量不再在作用域内。例如:

Steven$ cat simple.rb 
s = "hello"

Steven$ irb
irb(main):001:0> require_relative('simple')
=> true
irb(main):002:0> puts s
NameError: undefined local variable or method `s' for main:Object
    from (irb):2
    from /usr/bin/irb:12:in `<main>'
irb(main):003:0> 

好的,s是一个局部变量。局部变量之所以被称为局部变量,是因为它们仅在定义它们的作用域内有效。在这种情况下,s的作用域是simple.rb脚本主体。只能在那里访问它。如果您需要具有不同作用域的变量,则需要使用不同作用域的变量,在这种情况下可能是全局变量或main的实例变量。 - Jörg W Mittag
2个回答

3
你可以使用 pry 工具:

simple.rb 文件示例:

s = "hello"
binding.pry

在控制台中:

$ pry simple.rb 
[1] pry(main)> puts s
hello
=> nil
[2] pry(main)> 

-1
如果我理解你的问题,你可以使用ENV哈希表来访问环境变量,其中变量名作为键。例如,
[max@max:~] $ export PIE=pecan
[max@max:~] $ irb
1.9.3-p385 :001 > print ENV['PIE']
pecan => nil

这个问题不涉及环境变量。 - Jeffrey Bosboom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接