如何在 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
最佳答案
%w{ ... }
语法用于声明单词数组,并且不进行插值。由于您想要一个预先存在的字符串数组,因此可以通过声明一个普通的旧数组来实现:
[ variable1, variable2 ].each do |dir|
# ...
end
或者您可以切换到此:
%w[ /var/lib/temp /opt/chef/library ].each |dir|
# ...
end
第二种形式更有意义,因为这是您的意图。不需要中间变量。
关于arrays - Chef 使用数组中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40124825/