我有一个 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/