加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在ruby的OptionParser中使用变量参数

发布时间:2020-12-16 19:07:28 所属栏目:百科 来源:网络整理
导读:我不太了解 ruby,但我正在尝试为这个脚本添加一些功能,一位同事写道. 基本上现在它需要一些标志和标准作为输入,它使用OptionParser来解析标志. 我想使用OptionParser来解析一系列类似于cat的命令行参数.所以我想我的问题是如何编写使用OptionParser解析ruby
我不太了解 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成为一个文件名数组,假设用户已输入任何文件名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读