2015-12-21 32 views
6

我已閱讀http://www.gnu.org/software/parallel/man.html#example__calling_bash_functions的示例,但是,是否可以使用gnu parallel調用2個函數,該函數沒有任何變量傳遞給它們?並行調用多個bash函數

例如

a() { 
    echo "download a" 
    wget fileA 
} 

b() { 
    echo "download b" 
    wget fileB 
} 

和使用並行調用這兩種功能a & b

+1

我認爲你得把兩個不同的腳本,並與並行調用它們。 –

+1

而不是使用GNU並行,你可以在後臺調用函數嗎?像'a&; b'與'b'同時運行'a'? – chrisaycock

回答

6

在後臺運行它們。然後等待他們完成。

a() { 
    echo "download a" 
    wget fileA 
} 

b() { 
    echo "download b" 
    wget fileB 
} 

a & 
b & 
wait # waits for all background processes to complete 
+0

乾杯,確實做的工作! – p4guru

5

如果你堅持使用GNU並行:

a() { 
    echo "download a" 
    wget fileA 
} 

b() { 
    echo "download b" 
    wget fileB 
} 
export -f a 
export -f b 
parallel ::: a b