如何在Chef中使用数组中的变量。我正在尝试使用数组创建多个文件夹。但是我的代码不起作用:
代码
variable1 = "/var/lib/temp"
variable2 = "/opt/chef/library"
%w{ #{variable1} #{variable2} }.each do |dir|
directory dir do
owner 'root'
group 'root'
mode '755'
recursive true
action :create
end
end
答案 0 :(得分:1)
%w{ ... }
语法用于声明一个单词数组,并且不进行插值。既然你想要一个预先存在的字符串数组,你可以通过声明一个普通的数组来这样做:
[ variable1, variable2 ].each do |dir|
# ...
end
或者您可以切换到:
%w[ /var/lib/temp /opt/chef/library ].each |dir|
# ...
end
第二种形式更有意义,因为这是你的意图。不需要中间变量。