arrays - 如何在 ARGV 中传递数组作为参数

标签 arrays ruby

我有一个 ruby​​ 脚本,它接受 ARGV 的两个输入。第二个输入是文件数组。我在迭代传递给 ARGV 的文件数组时遇到问题。这是我到目前为止所拥有的:

arg1, FILES = ARGV

FILES.each do |fname| 
    #do something with fname 
end 

我正在从命令行运行我的脚本,如下所示:

ruby myScript.rb arg1 ['path/to/file1.jpg', '/path/to/file2.jpg'] 

我收到以下错误:

zsh: bad pattern: [path/to/file1.jpg,

数组参数括在单引号中,如下所示:

ruby myScript.rb arg1 '['path/to/file1.jpg', '/path/to/file2.jpg']'

产生不同的错误,因为它将其解释为字符串而不是数组

我怎样才能正确地完成这个任务?

最佳答案

使用

arg1, *FILES = ARGV

并且在调用期间不要放置任何括号或逗号:

ruby myScript.rb arg1 file1 file2 file3


编辑:如果您想添加另一个参数,您可以这样做:

arg1, arg2, *FILES = ARGV

arg1, *FILES, arg2 = ARGV

关于arrays - 如何在 ARGV 中传递数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32510152/

相关文章:

java - 用于测试分布式系统的集成测试框架?

java - 修剪对象数组

PHP 在页面加载时随机选择 css 文件

java - 如何将数组添加到 ArrayList?

ruby-on-rails - Ruby on Rails 监听器

javascript - Morris.js 如何为特定类型创建图表

ruby-on-rails - 为 capybara 安装 webkit

php - 检查两个表中两列的值是否相等然后返回

javascript - 将 SSID 列表转换为 JSON/Array

ruby - 如何构建大型 Rub​​y 应用程序?