ruby – 如何分割像shell这样的字符串来填充ARGV?
发布时间:2020-12-16 19:20:04 所属栏目:百科 来源:网络整理
导读:我想要一个 Ruby方法或一个正则表达式,让我将一串命令行参数拆分成一个类似ARGV的数组.我问的是类似于 this question,但在Ruby中. 我正在为使用Trollop处理命令行输入的Ruby程序编写单元测试(尽管这个问题对于任何其他选项解析器都是相同的). 我想测试的方法
我想要一个
Ruby方法或一个正则表达式,让我将一串命令行参数拆分成一个类似ARGV的数组.我问的是类似于
this question,但在Ruby中.
我正在为使用Trollop处理命令行输入的Ruby程序编写单元测试(尽管这个问题对于任何其他选项解析器都是相同的). 我想测试的方法如下所示: def parse_args(args) Trollop::options(args) do # ... parse options based on flags end end 在我的程序中,我调用parse_args(ARGV).在我的测试中,我认为我可以在空格中传递一个字符串,但这不是ARGV的行为.比较以下内容: ./argv_example.rb -f -m "Hello world" --extra-args "-vvv extra verbose" => ["-f","-m","Hello world","--extra-args","-vvv extra verbose"] '-f -m "Hello world" --extra-args "-vvv extra verbose"'.split => ["-f",""Hello","world"",""-vvv","extra","verbose""] 解决方法
如果您使用1.9,则有
Shellwords.如果你没有使用1.9但是确实有Rails那么你将从Rails获得
Shellwords.在任何一种情况下,您都可以使用Shellwords.shellwords来解析像POSIX shell这样的字符串:
>> Shellwords.shellwords("Where is 'pancakes house'?") => ["Where","is","pancakes house?"] 如果你没有Rails或1.9那么你可能只是从Rails中获取shellwords.rb并使用它. 更新:看起来0700在Ruby 1.8中可用(谢谢Michael Khol).关于哪些特定版本有它,我得到了模棱两可的结果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |