在OptionParser中,我可以强制选择一个选项,但是如果我省略该值,它将使用任何后续选项的名称作为值,从而搞砸了命令行解析的其余部分.这是一个回答选项值的测试用例:
$ ./test_case.rb --input foo --output bar
output bar
input foo
Run Code Online (Sandbox Code Playgroud)
现在省略第一个选项的值:
$ ./test_case.rb --input --output bar
input --output
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止它将另一个选项名称作为值?谢谢!
这是测试用例代码:
#!/usr/bin/env ruby
require 'optparse'
files = Hash.new
option_parser = OptionParser.new do |opts|
opts.on('-i', '--input FILENAME', 'Input filename - required') do |filename|
files[:input] = filename
end
opts.on('-o', '--output FILENAME', 'Output filename - required') do |filename|
files[:output] = filename
end
end
begin
option_parser.parse!(ARGV)
rescue OptionParser::ParseError
$stderr.print "Error: " + $! + "\n"
exit
end
files.keys.each do |key|
print "#{key} #{files[key]}\n"
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试从Ruby程序输出RTF(富文本格式) - 我更喜欢直接发出RTF而不使用RTF gem,因为我做的很简单.
我想强调DNA序列比对中的特定字符,从文档中我可以使用\ highlightN ...\highlight0或\ cbN ...\cb1
问题是我不能让\ cb在Word:Mac 2008或Mac TextEdit中工作(\ cf工作正常所以我知道它不是颜色表问题)
\ highlight确实有效,但看似只有两种可能的颜色(黑色和红色)和\ highlight不使用自定义颜色表.
通过在Word中创建带有字符着色的简单文档并保存为RTF,我可以看到大概冗长的RTF代码块,大概可以做我想要的,但它是如此难以理解,我没有看到树木.
部分问题可能是Mac Word没有正确实现RTF.我没有Windows版本的Word方便.
有人知道正确的方法来遮挡文本块吗?
谢谢 - 罗布
我可以使用Ruby程序或irb使用反引号(和%x(),系统等)运行Bash shell命令.但由于某些原因,这与历史无关.
例如:
jones$ irb --simple-prompt
>> `whoami`
=> "jones\n"
>> `history`
(irb):2: command not found: history
=> ""
Run Code Online (Sandbox Code Playgroud)
在Ruby程序中,它会产生以下错误:
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31: command not found: history
Run Code Online (Sandbox Code Playgroud)
在bash本身,这些命令工作正常
并不是Ruby调用正在调用一个新shell - 它根本找不到该命令......
谁知道为什么?我很难过......