`
fantaxy025025
  • 浏览: 1330566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Ruby_命令行参数解析工具_工具类

阅读更多

 

一。用命令行的ARGV 和ARGF和ENV

写一些工具类和脚本的时候总是要用到合理的命令行参数解析,稍微复杂一点就不能用ARGV了。

关于这两个的简单用法,请看一篇文章。

 

二。找个好用的工具吧~

 

require 'optparse'

这个工具感觉不是太好用。

 

三。使用trollop工具

这个工具很好用哦,能力也很强,可以解析形式如svn命令行一样的参数,如svn delete xxx_files

这个工具现在的缺点,如果说是的话,就是参数和值不能连写,例如 -f xxx_file_name 这么写没有问题,但是如果写为 -fxxx_file_name 那么解析不出来。不过这不算是问题了,你可以处理一下,把这种形式的参数分开就ok了~

 

看个例子:

Examples

Simple

 

require 'trollop'
opts = Trollop::options do
  opt :monkey, "Use monkey mode"                     # flag --monkey, default false
  opt :goat, "Use goat mode", :default => true       # flag --goat, default true
  opt :num_limbs, "Number of limbs", :default => 4 # integer --num-limbs <i>, default to 4
  opt :num_thumbs, "Number of thumbs", :type => :int # integer --num-thumbs <i>, default nil
end

p opts # a hash: { :monkey => false, :goat => true, :num_limbs => 4, :num_thumbs => nil }
#注意
#1 默认是boolean类型的,所以只需要-m 不需要后面的值;
#   如果没有-m,这用默认值;如果没有默认值,则默认是false
#2 如果给值了,则结果的hash会多一个键值对,在键名为:xxx_given,值为:true
 
  • Trollop::options returns a hash of values. That's all the output you get.
  • Underscores are converted to dashes. opt :hello_there corresponds to an option --hello-there .
  • All options are taken to be boolean flags, defaulting to false, unless you specify a default or a type. The type will be inferred from the default if given, so no need to specify both.
  • Short (one-character) option names are created automatically. You can set them manually with :short .

 

更详细的使用文档,看官方吧~

http://trollop.rubyforge.org/

http://all-thing.net/label/trollop

 

 

 

 

 

分享到:
评论

相关推荐

    Ruby-命令行实用程序来配置Swift项目的编译时间

    利用这些工具,我们可以创建一个名为`xcprofiler`的CLI,它能接收命令行参数,例如项目路径、配置选项等,然后进行以下操作: 1. **分析编译时间**:`xcprofiler`可以连接到Xcode的构建系统,记录每个目标的编译...

    Ruby-将Ruby变成一个多功能命令行实用程序

    通过以上步骤,我们可以构建一个功能丰富的Ruby命令行工具。Ruby的生态系统提供了许多库和工具,如`Thor`, `Slop`, 或者`GLI`,它们可以帮助我们更高效地构建CLI工具,提供更复杂的命令结构和更友好的用户界面。不断...

    Ruby-RDoc用于为Ruby项目生成HTML和命令行文档

    Ruby-RDoc是Ruby编程语言中一个非常重要的工具,主要用于生成项目的HTML和命令行文档。它使得开发者能够方便地创建清晰、结构化的代码注释,进而自动生成易于理解的API文档,帮助其他开发者理解和使用项目。在Ruby...

    Ruby-TorS一个命令行的torrent搜索应用

    1. **命令行参数处理**:Ruby的`OptionParser`库或`ARGV`全局数组可以帮助解析命令行参数,根据用户提供的选项进行相应操作。 2. **HTTP请求与解析**:为了与torrent搜索引擎交互,需要使用如`Net::HTTP`库发送HTTP...

    Ruby-Main一个类工厂和DSL用于快速生成命令行程序

    总结来说,Ruby的Main库是一个强大的工具,它通过DSL简化了命令行程序的开发,使得定义命令、处理参数和选项变得更加直观和高效。如果你经常需要创建CLI工具,或者希望提升你的Ruby CLI项目开发体验,Main库是一个...

    Ruby的25个编程细节(技巧、实用代码段)

    在开发过程中,经常需要通过命令行发送HTTP请求,Ruby提供了多种方式来实现这一需求,其中 `curl` 是一种常见的工具。 **示例代码:** ```bash curl -d "channel=中信异度支付&action_type=娱人节-手机充值&user_...

    ruby 1.9 教程

    - **命令行参数**: 如何在Ruby脚本中处理命令行参数,这对于编写命令行工具非常有用。 ##### 2. 类、对象和变量 - **对象和属性**: Ruby中的一切都是对象,对象具有状态和行为,可以通过定义类来创建对象。 - **类与...

    Ruby Reference Sheet.pdf

    - **交互式命令行:** Ruby提供了一个交互式的命令行工具,即`irb`(Interactive Ruby Shell)。在终端中输入`irb`即可启动该环境。 - **版本查询:** 要查看当前安装的Ruby版本,可以在终端输入`ruby --version`,...

    Ruby语言开发教程与案例.zip

    2. **命令行工具**:Ruby也常用于编写简单的命令行工具,可以学习如何使用OptionParser或Slop库处理命令行参数。 3. **文件操作**:Ruby提供强大的文件和目录操作API,案例可能包括读写文件,遍历目录,或者处理...

    Pragmatic.Programming.Ruby.1.9

    - **命令行参数**:说明如何处理命令行传入的参数。 #### 3. **类、对象与变量** - **对象属性**:深入探讨对象的概念及属性设置。 - **类与其他类的交互**:讨论类之间的继承关系和其他高级用法。 - **访问控制**...

    Ruby 学习指南.rar

    - IRB(Interactive Ruby):命令行工具,用于交互式地运行Ruby代码。 - Pry:增强版的IRB,提供更强大的调试功能。 - RSpec:行为驱动开发的测试框架,用于编写可读性强的测试用例。 - Test::Unit:内置的单元...

    ruby on rose开发文档-开发

    3. **ActionController**:处理HTTP请求和响应,负责路由、参数解析、数据验证和响应生成。开发者可以定义控制器方法来处理特定的HTTP请求,并通过助手方法来渲染视图或重定向。 4. **ActionView**:负责生成HTML...

    Command Line Parser GetPot:解析命令行和配置文件的工具。-开源

    总的来说,GetPot是一个功能丰富的开源工具,简化了处理命令行参数和配置文件的工作,使得开发者可以更加专注于应用程序的核心功能开发,而不用花费大量时间在参数解析上。无论是小型脚本还是大型软件项目,GetPot都...

    ruby语法基础教程.pdf

    - fxri是Ruby的一个文档查看工具,用于查阅Ruby标准库和第三方库的文档。 **2.3 Ruby-irb** - irb是Ruby的交互式解释器,可以在其中直接执行Ruby代码,非常适合调试和测试小段代码。 **2.4 Ruby-ri** - ri是Ruby...

    CLAide:一个小的命令行界面框架

    您好,我是 Claide,您的命令行工具助手。 我出生于对简单选项和命令解析器的需求,同时仍然提供了一个API,可让您快速创建功能全面的命令行界面。 安装 $ [sudo] gem install claide 用法 有关 CLAide API 的完整...

    Ruby-RubyRetriever异步Web爬虫

    6. **命令行接口**:作为命令行工具,RubyRetriever可能使用了OptionParser或Clikt等库来处理命令行参数,提供用户友好的交互界面。 7. **爬虫框架**:RubyRetriever允许开发者自定义爬取规则,这可能通过定义...

    Ruby的中文文档及案例

    7. **标准库**:Ruby附带了一个丰富的标准库,包含了各种常用的工具和类,如文件操作、网络通信、JSON解析等。 8. **Gem生态系统**:Ruby的Gem是其强大的包管理系统,提供了成千上万的开源库,方便开发者快速构建...

    bilibili自动上传视频(纯ruby)

    标题 "bilibili自动上传视频(纯ruby)" 指出的是一个使用Ruby编程语言编写的脚本或工具,其主要功能是自动化上传视频到B站(哔哩哔哩,Bilibili)平台。这个工具特别强调了“纯ruby”,意味着它没有依赖其他非Ruby...

    expression-parser:命令行 Ruby 代数方程标记器求解器

    "expression-parser:命令行 Ruby 代数方程标记器求解器" 是一个基于 Ruby 语言的工具,它专门设计用于解析和解决简单的数学表达式。这个程序允许用户通过命令行界面输入包含数字、算术运算符(如加、减、乘、除)...

Global site tag (gtag.js) - Google Analytics