拼音控制台参数



在 ruby 脚本中,我们可以在控制台中传递这样的参数:

 `ruby r3.rb sam sou "samarth pandey"`

这将在一个数组中接收,但现在我想发送这样的参数

 `ruby sam sou {:sam => abc, :sou => abc}`

那么我该怎么做,我不想让我的哈希像字符串一样

 `ruby sam sou "{:sam => abc, :sou => abc}"`
没有

引号传递哈希,因为 shell 会将>识别为输出重定向,并将脚本的输出通过管道传输到名为 abc} 的文件中。

编辑:

使用 Ruby 1.9 哈希语法,您可以执行以下操作:

foo.rb:

p eval(ARGV.join(' ').gsub(/: (.+?)([,|}])/, ': "1"2'))

在外壳中:

$ ruby foo.rb {lkj: dssd, kjdsh: kldiu} #=> {:lkj=>"dssd", :kjdsh=>"kldiu"}

我认为这不是很优雅,语法也不是有效的 Ruby,因为缺少值的引号,但它将是您任务的解决方案。

相关内容

最新更新