2014-09-02 87 views
2

我需要通過gnu parallel爲dir中的每個元素運行bash函數。我需要訪問這個函數的一個evn變量。我如何通過它。例如下面的shell腳本中的代碼。我有一個變量DIRS = /文件夾/日誌。我如何通過'DIRS'來運行readfile_。提前致謝。使用gnu並行運行循環並傳遞變量

export SHELL=$(type -p bash) 
function readfile_ {do something} 

export -f readfile_ 
ls -d */ | grep -v errlogs | parallel readfile_ 

回答

1

我明白了。

http://www.gnu.org/software/parallel/parallel_tutorial.html#Transfer-environment-variables-and-functions

DIRS=/folder/log 
export DIRS 
ls -d */ | grep -v errlogs | parallel --env DIRS readfile_ 
+0

'--env'只需要你遠程運行命令。否則'出口'應該是很多。如果你使用版本20140822和'env_parallel'函數,你甚至可以忽略'export':www.gnu.org/software/parallel/man.html(在--env) – 2014-09-02 06:53:55

+0

@ OleTange謝謝。就像這樣:parallel --env _ readfile_。在此行之前需要「parallel --record-env」。 – douyou 2014-09-03 02:40:10