2016-09-18 45 views
0

我在一个文件夹中有一组文件。我想将一个文件夹中的文件数组传递给某个函数。我看到下面的例子傀儡文件夹中的文件迭代循环

$files= ["C:/dir/file1", "C:/dir/file2", "C:/dir/file3", 
     "C:/dir/file4", "C:/dir/file5"] 

# function call with lambda: 
$binaries.each |String $binary| { 
    file {"/usr/bin/$binary": 
    ensure => file, 
    } 
} 

但不是手动声明文件,我可以阅读从目录中的所有文件,并把它传递给一些功能?

+0

您只能使用自定义事实来做到这一点。那样你觉得可以吗? –

回答

2

您可以使用Dir使用某种模式获取所有文件。例如:

[1] pry(main)> Dir["/Users/smefju/tmp/*"] 
=> ["/Users/smefju/tmp/a.rb", 
"/Users/smefju/tmp/asd", 
"/Users/smefju/tmp/bm.rb", 
"/Users/smefju/tmp/cert", 
"/Users/smefju/tmp/gc", 
"/Users/smefju/tmp/qq"] 
+0

我们可以将上面的片段转换为puppet @smefu – Dev

+0

@Dev不确定你现在在问什么。要使用基于目录内容的动态值替换硬编码数组,您可以使用具有适当模式的'Dir'并将其直接分配给'$ files'。请记住,在代码片段中有'$ files'和'$ binaries'(不确定它是否是有意的)。 – smefju

+0

@StephenKing是的我想......谢谢。我没有在数组中手动​​声明文件的问题,但我检查是否有通过木偶循环目录中的文件 – Dev