У меня есть два атрибута, как это:Из массива атрибутов колотить массив
default['cookbook']['array1'] = [ "a", "b", "c", "d" ]
default['cookbook']['array2'] = [ "x", "y", "z", "w" ]
Мне нужно передать эти атрибуты в качестве переменных в шаблон, как это:
template "/tmp/some.sh" do
source "some.sh.erb"
owner 'root'
group 'root'
mode "0755"
variables(
:bash_array1 => node['cookbook']['array1'],
:bash_array2 => node['cookbook']['array2']
)
end
В моем Баше скрипте мне нужно иметь два массива, которые будут иметь каждый, значение два массива выше, как этот
#!/bin/bash
inputs1=("a" "b" "c" "d")
inputs2=("x" "y" "z" "w")
Что самый простой способ сделать это?
Спасибо,
Габриэлю
EDIT: Файл sh.erb с тем, что я пытался до сих пор выглядит следующим образом:
####### the original sh file #########
#inputs1=("a" "b" "c" "d") #this is the original sh file
#inputs2=(""x" "y" "z" "w")
####### end of the original sh file #########
Что я пробовал:
inputs1=<%= @bash_array1 %>
inputs2=<%= @bash_array2 %>
и результат:
inputs1=[ "a", "b", "c", "d" ] #which cannot be used
inputs2=[ "x", "y", "z", "w" ] #which cannot be used
Конечный результат в моей ш должен быть
inputs1=("a" "b" "c" "d")
inputs2=("x" "y" "z" "w")
Благодарим вас за то, что нашли время, чтобы прочитать мою проблему. В самом деле, моя проблема заключается в том, что я мало что знаю о рубине, и если бы я был неясно об этом, я извиняюсь. Мне нужно знать, как получить атрибут массива в массив bash. Еще раз спасибо. – gbaii
Не так, как вы это делаете, вам нужно написать код. Используйте основные строительные блоки, о которых я упоминал, с тем, что вы можете выписать любой желаемый формат. – coderanger