2013-01-20 31 views
1

我剛剛發現GNU並行,並且在運行一個簡單的並行任務時遇到了一些麻煩。我有一個模擬運行多個值,我想分割它使用命令行參數並行運行。從docs看來,您可以運行parallel mycommand :::: myargfile,其中myargfile包含您想要並行提供命令的各種參數。不過,我沒有看到在ARGS應該如何列出的任何信息和設想一個myargfile像這樣的工作:bash gnu並行argfile語法

--pmin 0 --pmax 0.1 
--pmin 0.1 --pmax 0.2 
... 

mycommand --pmin 0 --pmax 0.1執行沒有問題。但是當我運行parallel mycommand :::: myargfile時,我得到了error: unknown option pmin 0 --pmax 0.1(抓住並解碼了禮貌助推計劃選項)。 parallel echo :::: myargfile正確打印出參數。就好像它們被包裝在一個字符串中,程序無法讀取,也沒有像標準bash腳本那樣提供。

發生了什麼事?我該如何做這項工作?

+0

此問題可能已答覆[here](http://stackoverflow.com/a/6258206/1328439)。 –

回答

0

通過手動和幫助頁面挖掘後,我想出了這個例子。也許它會拯救那裏的人。 :)

#!/usr/bin/env bash 

COMMANDS=(
    "cnn -a mode=flat" 
    "cnn -a mode=xxx" 
    "cnn_x -a mode=extreme" 
) 

parallel --verbose --progress --colsep ' ' scrapy crawl {.} ::: "${COMMANDS[@]}"