gpt4 book ai didi

ruby - 同时创建多个子文件夹 Chef

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:36 24 4
gpt4 key购买 nike

不确定如何使用数组来创建多个Chef 中 Sales 文件夹的子文件夹。

sales = 'Sales'
salesfolders = %w{'NewClients', 'MarketingMaterial', 'SalesTools', 'ClientInformation'}


directory "#{directory}\\#{salesfolders}"
owner 'root'
group 'root'
mode '0755'
recursive true
action :create
end '

}

最佳答案

好的 – 有一些事情需要注意。首先,salesfolders 目前不是有效的数组。您需要像这样定义它:

salesfolders = ['foo', 'bar']

或者像这样:

salesfolders = %w(foo bar)

后一种语法是字符串数组的简写 - 它与第一个示例相同,但语法糖较少。

一旦获得了格式良好的数组,您需要迭代该数组并为其中的每个项目运行一些代码。在 Ruby 中,这是通过在数组上调用 .each 来实现的,如下所示:

salesfolders.each do |salesfolder|
# do something with salesfolder
end

请注意,那里设置了一个 salesfolder 变量,该变量对于数组中的每个项目都是不同的 - 如果我们看一下前面的示例,第一次运行该代码块时它将是 foo,第二个 bar,依此类推。

考虑到这一点,如果我们想为每个销售文件夹运行您的 Chef 代码,我们可以这样做:

salesfolders.each do |salesfolder|
directory "/something/else/here/#{salesfolder}" do
owner 'root'
group 'root'
mode '0755'
recursive true
action :create
end
end

对于数组中的每个销售文件夹,我们将运行 directory block 并创建一个新目录。

关于ruby - 同时创建多个子文件夹 Chef ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com