Я пытаюсь передать массив в скрипт ruby из командной строки и сталкиваюсь с некоторой проблемой.
Вот проблема:
require 'pp'
def foo(arr1, var, arr2, var2)
puts arr1.class
pp arr1
pp arr1[0]
puts arr2.class
pp arr2
pp arr2[0]
end
foo [1, 2], 3, [5, 6], 8
Вот вывод:
Array
[1, 2]
1
Array
[5, 6]
5
Пока все в порядке.Теперь я изменяю свой сценарий так, чтобы он принимал аргумент из командной строки:
require 'pp'
def foo(arr1,var)
puts arr1.class
pp arr1
pp arr1[0]
end
foo ARGV[0],3
Вот вывод:
jruby test.rb [1, 2], 3, [5, 6], 8
String
"[1,"
91
String
"2],"
50
Как видите, массив передается в виде строки и обр[0] в основном печатает значение ascii.
Итак, вопрос в том, как передать массив из командной строки, надеюсь, в одну строку.Также я считаю, что этот вопрос относится ко всем вызовам оболочки, кроме просто ruby?
Я использую оболочку bash.
Обновление: просто обновил вопрос, чтобы указать, что в разных позициях может быть несколько массивов