2015-12-21 15 views
6

Ho letto l'esempio in http://www.gnu.org/software/parallel/man.html#example__calling_bash_functions tuttavia, è possibile utilizzare gnu parallel per chiamare 2 funzioni che non hanno alcuna variabile passata a loro?chiamate parallele multiple funzioni di bash

esempio

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

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

Utilizzando parallelo per chiamare entrambe le funzioni a & b?

+1

penso che bisogna fare due script diversi e chiamarli con parallelo. –

+1

Invece di usare GNU parallel, potresti semplicemente chiamare le funzioni in background? Mi piace 'a &; b' per eseguire 'a' in concomitanza con' b'? – chrisaycock

risposta

6

Eseguili in background. E poi aspetta che si completino.

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

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

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

saluti che fa davvero il lavoro! – p4guru

5

Se ti ostini a usare GNU parallelo:

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

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