我不太了解 ruby,但我正在尝试为同事编写的这个脚本添加一些功能。
基本上现在它需要一些标志和标准作为输入,并且它使用 OptionParser 来解析标志。
我想使用 OptionParser 来解析一系列类似于 cat 的命令行参数。所以我想我的问题是如何使用 OptionParser 在 ruby 中编写命令行选项来解析 cat 的一部分
cat [OPTION]... [FILE]...
希望这是有道理的,任何帮助表示赞赏。
我不太了解 ruby,但我正在尝试为同事编写的这个脚本添加一些功能。
基本上现在它需要一些标志和标准作为输入,并且它使用 OptionParser 来解析标志。
我想使用 OptionParser 来解析一系列类似于 cat 的命令行参数。所以我想我的问题是如何使用 OptionParser 在 ruby 中编写命令行选项来解析 cat 的一部分
cat [OPTION]... [FILE]...
希望这是有道理的,任何帮助表示赞赏。
OPTS = {}
op = OptionParser.new do |x|
x.banner = 'cat <options> <file>'
x.separator ''
x.on("-A", "--show-all", "Equivalent to -vET")
{ OPTS[:showall] = true }
x.on("-b", "--number-nonblank", "number nonempty output lines")
{ OPTS[:number_nonblank] = true }
x.on("-x", "--start-from NUM", Integer, "Start numbering from NUM")
{ |n| OPTS[:start_num] = n }
x.on("-h", "--help", "Show this message")
{ puts op; exit }
end
op.parse!(ARGV)
# Example code for dealing with filenames
ARGV.each{ |fn| output_file(OPTS, fn) }
正如他们所说,我将把其他命令行操作留给读者作为练习!你明白了。
(注意:我必须发明一个虚构的 -x 参数来演示在标志之后传递值。)
更新:我应该解释说,假设用户输入了任何文件名,这会将 ARGV 保留为文件名数组。