Chinaunix首页 | 论坛 | 博客
  • 博客访问: 852065
  • 博文数量: 188
  • 博客积分: 4433
  • 博客等级: 上校
  • 技术积分: 1905
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-14 07:14
个人简介

linux

文章分类

全部博文(188)

文章存档

2016年(6)

2015年(22)

2014年(18)

2013年(5)

2012年(125)

2011年(10)

2010年(2)

分类: Python/Ruby

2012-03-20 15:44:35

require 'getoptlong'

opts = GetoptLong.new(
  [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
  [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],
  [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]
)

dir = nil
name = nil
repetitions = 1
opts.each do |opt, arg|
  case opt
    when '--help'
      puts <<-EOF
hello [OPTION] ... DIR

-h, --help:
   show help

--repeat x, -n x:
   repeat x times

--name [name]:
   greet user by name, if name not supplied default is John

DIR: The directory in which to issue the greeting.
      EOF
    when '--repeat'
      repetitions = arg.to_i
    when '--name'
      if arg == ''
        name = 'John'
      else
        name = arg
      end
  end
end

if ARGV.length != 1
  puts "Missing dir argument (try --help)"
  exit 0
end

dir = ARGV.shift

Dir.chdir(dir)
for i in (1..repetitions)
  print "Hello"
  if name
    print ", #{name}"
  end
  puts
end

一个简单例子

#!/usr/bin/ruby
require 'getoptlong'
def help()
        puts "help info"
end

def puta(hostname)
        puts hostname
end

opts = GetoptLong.new(
        ['--hostname','-H',GetoptLong::REQUIRED_ARGUMENT],
        ['--help','-h',GetoptLong::NO_ARGUMENT]
)

opts.each do |opt,arg|
        case opt
        when '--hostname'
                hostname = arg
                puta(hostname)
        when '--help'
                help
        end
end
阅读(1275) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~