irb 是从命令行运行的
irb 的命令行选项(摘自 Porgramming Ruby 第二版)
-f | 禁止读取~/.irbrc Suppress reading ~/.irbrc. |
-m | 数学模式(支持分数和矩阵) Math mode (fraction and matrix support is available). |
-d | 设置#DEBUG为true(同ruby -d一样) Set $DEBUG to true (same as ``ruby -d''). |
-r load-module | 同ruby -r Same as ``ruby -r''. |
--inspect | 使用Object#inspect来格式化输出(默认方式,除数学模式外) Use ``inspect'' for output (the default, unless in math mode). |
--noinspect | 不使用inspect进行输出 Do not use inspect for output. |
--readline | 使用Readline扩展模块 Use Readline extension module. |
--noreadline | 不使用Readline扩展模块 Do not use Readline extension module. |
--prompt prompt-mode | 切换提示符。预定义的模式包括(null,default,simple,xmp以及inf-ruby) Switch prompt mode. Predefined prompt modes are ``default'', ``simple'', ``xmp'', and ``inf-ruby''. |
--prompt-mode prompt-mode | Same as --prompt. |
--inf-ruby-mode | 设置irb以Emacs的inf-ruby-mode模式运行,更改提示符并废止-readline Sets up irb to run in inf-ruby-mode under Emacs. Changes the prompt and suppresses --readline. |
--simple-prompt | 使用简单的提示符 Simple prompt mode. |
--noprompt | 不显示提示符 Do not display a prompt. |
--tracer | 显示命令执行的跟踪 Display trace for execution of commands. |
--back-trace-limit n | 显示最顶部和尾部的n项回溯信息。默认值为16 Display backtrace information using the top n and last n entries. The default value is 16. |
--irb_debug n | 将内部调试级别设置为n(只对irb的开发有用) Set internal debug level to n (only for irb development). |
-v, --version | 显示irb的版本号 Print the version of irb. |
命令行开始执行后,irb显示一个提示符并等待输入。
使用irb的默认提示符,它显示当前的绑定、缩进(嵌套)级别以及行号。
如:
C:/>irb
irb(main):001:0> elvuel="elvuel"
=> "elvuel"
irb(main):002:0> elvuel.class
=> String
可以通过exit 或 quit,或者通过输入一个文件结束符号(如果没有设置IGNORE_EOF模式)来退出irb.
在一个irb会话中,你所设置的变量、定义的方法及创建的类都将被记忆在irb的工作区中,并可被后续使用。
现在做一个示例:
将一个文件 a.rb加载到irb(这样就可以创建它定义的类的实例并调用其方法)
C:/>irb
irb(main)001:0>load a.rb (load同require区别在于:load允许我们多次加载同一个文件,如果我们发现一个bug然后编辑文件,可以将文件重新加载到irb会话中)
irb(main):002:0>这里来创建或调用:类或方法。。。
irb子会话
irb支持多个 并发的会话.
相关命令说明
jobs:该命令列出所有的会话, fg:激活一个特定的对话 在命令行下显示如: irb(main)x9>fg 0 其中0为会话标识
退出子会话的命令为irb_exit
irb子会话与绑定
如果当你创建子会话时指定了一个对象,它会成为会话中的self的值.
C:/>irb
irb(main):001:0> self
=> main
irb(main):002:0> irb "elvuel"
irb#1(elvuel):001:0> upcase
=> "ELVUEL"
irb#1(elvuel):002:0> self
=> "elvuel"
irb#1(elvuel):003:0> size
=> 6
irb#1(elvuel):004:0> gsub(/e/,'a')
=> "alvual"
irb#1(elvuel):005:0> irb_exit
=> #, @signal_status=:IN_EVAL, @sca
nner=#>
irb(main):003:0> self
=> main
irb(main):004:0>