07、Ruby 命令行选项

配置了Ruby 环境以后,我们就可以在命令行里输入 ruby 运行任何 Ruby 相关的动作了

Ruby 一般是以命令行的方式运行

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

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

选项 描述
-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] 设置默认的记录分隔符( `$` /)为八进制。默认值为 \0
-p 把代码放置在一个输入循环中。在每次迭代后输出变量 `$` _ 的值
-r lib 使用require来加载lib作为执行前的库
-s 解读程序名称和文件名参数之间的匹配模式
-xxx 的任何参数作为开关,并定义相应的变量
-T [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/bin

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