Tutorial Ruby / Ruby 命令行选项

Ruby 命令行选项

Ruby 一般是从命令行运行,方式如下:

$ ruby [ options ] [.] [ programfile ] [ arguments ... ]

解释器可以通过下列选项被调用,来控制解释器的环境和行为。

选项描述
-a与 -n 或 -p 一起使用时,可以打开自动拆分模式(auto split mode)。请查看 -n 和 -p 选项。
-c只检查语法,不执行程序。
-C dir在执行前改变目录(等价于 -X)。
-d启用调试模式(等价于 -debug)。
-F pat指定 pat 作为默认的分离模式($;)。
-e prog指定 prog 作为程序在命令行中执行。可以指定多个 -e 选项,用来执行多个程序。
-h显示命令行选项的一个概览。
-i [ ext]把文件内容重写为程序输出。原始文件会被加上扩展名 ext 保存下来。如果未指定 ext,原始文件会被删除。
-I dir添加 dir 作为加载库的目录。
-K [ kcode]指定多字节字符集编码。e 或 E 对应 EUC(extended Unix code),s 或 S 对应 SJIS(Shift-JIS),u 或 U 对应 UTF-8,a、A、n 或 N 对应 ASCII。
-l启用自动行尾处理。从输入行取消一个换行符,并向输出行追加一个换行符。
-n把代码放置在一个输入循环中(就像在 while gets; ... end 中一样)。
-0[ octal]设置默认的记录分隔符($/)为八进制。如果未指定 octal 则默认为 \0。
-p把代码放置在一个输入循环中。在每次迭代后输出变量 $_ 的值。
-r lib使用 require 来加载 lib 作为执行前的库。
-s解读程序名称和文件名参数之间的匹配模式 -xxx 的任何参数作为开关,并定义相应的变量。
-T [level]设置安全级别,执行不纯度测试(如果未指定 level,则默认值为 1)。
-v显示版本,并启用冗余模式。
-w启用冗余模式。如果未指定程序文件,则从 STDIN 读取。
-x [dir]删除 #!ruby 行之前的文本。如果指定了 dir,则把目录改变为 dir
-X dir在执行前改变目录(等价于 -C)。
-y启用解析器调试模式。
--copyright显示版权声明。
--debug启用调试模式(等价于 -d)。
--help显示命令行选项的一个概览(等价于 -h)。
--version显示版本。
--verbose启用冗余模式(等价于 -v)。设置 $VERBOSE 为 true。
--yydebug启用解析器调试模式(等价于 -y)。

单字符的命令行选项可以组合使用。下面两行表达了同样的意思:

$ ruby -ne 'print if /Ruby/' /usr/share/bin


$ ruby -n -e 'print if /Ruby/' /usr/share/bin