2016-09-18 64 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