Ruby 脚本如何检测它正在 irb 中运行?
我有一个定义类的 Ruby 脚本。我希望脚本
BoolParser.generate :file_base=>'bool_parser'
仅在脚本作为可执行文件调用时才执行该语句,而不是在从 irb 中 require
时执行该语句(或通过 -r
-r 在命令行上传递)代码>)。我可以用什么来包裹上面的语句以防止它在加载 Ruby 文件时执行?
I have a Ruby script that defines a class. I would like the script to execute the statement
BoolParser.generate :file_base=>'bool_parser'
only when the script is invoked as an executable, not when it is require
'd from irb (or passed on the command line via -r
). What can I wrap around the statement above to prevent it from executing whenever my Ruby file is loaded?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
条件
$0 == __FILE__
......当从命令行运行脚本时为 true...
...但当另一个 ruby 脚本需要或加载文件时为 false。
The condition
$0 == __FILE__
...... is true when the script is run from the command line...
... but false when the file is required or loaded by another ruby script.
在 irb 中使用 $0
$0 的值是“irb”,
文件中是“/path/to/file”
解释 此处
use $0
in irb the value of $0 is "irb"
in your file is "/path/to/file"
an explanation here