并行调用多个 bash 函数

parallel call multiple bash functions

我已经阅读了 http://www.gnu.org/software/parallel/man.html#example__calling_bash_functions 中的示例,但是,是否可以使用 gnu parallel 调用 2 个没有传递给它们的变量的函数?

例子

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

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

并使用并行调用两个函数 a & b ?

运行 他们在后台。然后等待他们完成。

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

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

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

如果你坚持使用GNU Parallel:

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

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

如果您需要读取 shell 中的变量,您可以导出变量或使用 env_parallel.