ruby的启动
ruby 【option】 【--】【programfile】 【参数】
其中option包括以下,目前还是不是非常清楚,但是明白可以通过ruby
调用脚本方式是知道的。
-0数字
以8进制数指定输入记录分隔符('$')
若不指定数字的话,分隔符是空字符(等同于$/="\0")。数字后面可以有其他的开关(switch)。
-00代表段落模式(等同于$/=""),-0777(因为这个代码不代表任何文字)表示将文件的全部内
容一次性读入(相当于$/=nil)。
-a
与'-n'或'-p'一起使用时,可以打开自动拆分模式(auto split mode)。自动拆分模式将在各个循环前执行以下动作。
$F
= $_.split
若没有同时指定'-n'或'-p'选项的话将不起作用。
-C directory
执行脚本之前,先移动到指定目录。
-c
只对脚本进行编译,而并不执行。编译后若没发现语法错误,则显示“Syntax OK”。
--copyright
显示版权信息。
-Kc
指定Ruby要处理的汉字编码。若是'E'或'e',则Ruby认定字符串或访问文件中的汉字编码为EUC。同样,若是'S'或's'的话则认定为SJIS。若是'U'或'u'则当作UTF-8处理。'N'表示不对汉字进行处理。该选项的默认值就是N(NONE)。
-d
--debug
以调试模式执行脚本。将$DEBUG设置成true。在脚本中可以使用该变量反应调试状态
-e script
没搞懂。。。
在命令行中指定脚本。添加-e选项后,就不会从参数中抽取脚本文件名了。
若多次使用-e选项时,系统会按照以下方式处理。
下列各表达式的意义相同。
ruby -e "5.times do |i|" -e "puts i" -e "end"
ruby -e "5.times do |i|
puts i
end"
ruby -e "5.times do |i|; puts i; end"
-Fregexp
将regexp指定给输入域分隔符(field separator)。
-h
--help
显示命令行选项的简介。
-i[extension]
替换操作,好像用的不多
对参数中指定的文件内容进行替换(in-place edit)。原始文件将被加上扩展名并保存下来。
若没有扩展名的话,将不会进行备份,而且只有替换后的文件会被保留下来。
-I
directory
指定(追加)加载文件的路径。指定的目录将被追加到Ruby的数组变量($:)中。
-l
进行行尾自动处理。首先,将$\改为$/的值,在print输出时添加换行。若使用了-n标志或-p标志的话,将对gets读入的各行末尾进行String#chop!处理。
-n
若使用了该标志,则整个程序会像sed -n或awk一样,被
while gets
...
end
括起来运行。
-p
与-n标志相仿,在各循环后输出变量$_的值。
例:
% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
MATZ
-r
feature
执行脚本前,先对feature指定的库执行require操作。与'-n'选项、'-p'选项一起使用时特别奏效。
-s
对跟在脚本名后并且以'-'开头的参数进行解释,并将其值赋值给同名的全局变量。遇到以'--'开头的参数就停止解释,并将该参数从ARGV中删除。
例:
#! /usr/local/bin/ruby -s
# prints "true" if invoked with `-xyz' switch.
print "true\n" if $xyz
-S
该选项表明,当脚本名不是以'/'开头的时候,要使用环境变量PATH的值搜索脚本。若您的机器不支持#!的话,可以使用下列方法模拟#!的运行:
#!/bin/sh
exec ruby -S -x $0 "$@"
#! ruby
因为第1行的关系,系统把脚本交给/bin/sh。/bin/sh执行第2行后启动Ruby解释器。在-x选项的作用下,Ruby解释器把从'#!'到包含'ruby'的行的内容全部读入。
根据系统的不同,$0未必包含完整路径,因此有必要使用'-S'选项来告诉Ruby在必要时搜索脚本。
-T[level]
执行不纯度测试。若给level指定了一个值之后,安全等级也会使用这个值。省略level时,其值为1。对于CGI程序来说,将其指定为-T1比较合适。$SAFE的等级也将被设定。
-v
--verbose
冗长模式。启动时显示版本信息,然后将内部变量$VERBOSE设为true。当此变量为true时,众多的方法在运行时会显示冗长的信息。若只设定'-v'选项,而没有其他参数时,启动后会先显示版本信息,然后就结束运行(不会等待来自标准输入的脚本)。
--version
显示Ruby的版本信息。
-w
不显示版本信息的冗长模式。
-W[level]
ruby 1.8 特性
可以指定3种级别的冗长模式,如下所示。
- -W0: 不显示警告
- -W1: 只显示重要警告(默认)
- -W2 or -W: 显示所有警告
内部变量$VERBOSE被分别设置为nil,false,true。
-x[directory]
从message中取出脚本并执行。读入脚本的范围是从'#!'开始,直到包含'ruby'的行为止。用EOF(文件结束),^D(controlD),^Z(controlZ)或保留字_END_来指定脚本结束。
若指定了目录名的话,则在执行脚本前移动到该指定目录。
-y
--yydebug
编译器调试模式。编译脚本时显示语法分析的过程。该显示过程会很漫长,可能只对那些想调试编译器的人有用。