首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby中非常便宜的命令行选项解析

Ruby中非常便宜的命令行选项解析
EN

Stack Overflow用户
提问于 2009-05-22 12:35:30
回答 19查看 55.2K关注 0票数 116

编辑:请,请,在回复之前,请阅读这篇文章底部列出的两个要求。人们不断地发布他们的新的gem和库之类的东西,这显然不符合要求。

有时,我想非常便宜地将一些命令行选项编译到一个简单的脚本中。做这件事的一个有趣的方法是,不用处理getopts或解析或类似的事情:

代码语言:javascript
复制
...
$quiet       = ARGV.delete('-d')
$interactive = ARGV.delete('-i')
...
# Deal with ARGV as usual here, maybe using ARGF or whatever.

它不完全是普通的Unix options语法,因为它可以接受选项的非选项命令行参数,比如"myprog -i foo bar -q",但我可以接受。(有些人,比如Subversion开发人员,更喜欢这种方式。有时我也会这样做。)

只存在或不存在的选项不能比上面更简单地实现。(一次赋值,一次函数调用,一个副作用。)有没有一种同样简单的方法来处理带有参数的选项,比如"-f文件名“?

编辑:

有一点我之前没有说过,因为直到Trollop的作者提到这个库适合“在一个800行的文件中”时,我才明白这一点,那就是我不仅要寻找干净的语法,还要寻找一种具有以下特征的技术:

RubyRuby1.8.5-7可以将整个代码包含在脚本文件中(而不会淹没实际的脚本本身,它可能只有几十行),这样用户就可以在任何安装了标准 1.8.5-7的系统上拖放bin目录中的单个文件并使用它。如果您不能编写没有Require语句的Ruby脚本,并且解析几个选项的代码少于十几行,那么您就失败了,这段requirement.

  1. The代码足够小和简单,用户可以记住足够多的代码来直接输入完成此任务的代码,而不是从其他地方剪切和粘贴。想象一下这样一种情况:您在一个没有Internet访问的防火墙服务器的控制台上,您想要抛出一个快速脚本供客户端使用。我不知道你是怎么想的,但是(除了没有达到上面的要求)记住45行简化的微语法分析也不是我想做的事情。
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/897630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档