2015-12-21 34 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