Omitindo seus outros sinalizadores parallel
apenas para manter o foco ...
parallel --link pf ::: A B ::: C D
Isso executará sua função primeiro com a=A
, b=C
seguido por a=B
, b=D
ou
a=A b=C
a=B b=D
Sem --link
você recebe uma combinação completa assim:
a=A b=C
a=A b=D
a=B b=C
a=B b=D
Atualização: como Ole Tange metioned em um comentário existe outra maneira de fazer isso, o operador :::+
. Existe uma diferença importante entre as duas alternativas SE o número de argumentos não é o mesmo em cada posição do parâmetro . Um exemplo ilustrará:
parallel --link pf ::: A B ::: C D E
output:
a=A b=C
a=B b=D
a=A b=E
parallel pf ::: A B :::+ C D E
output:
a=A b=C
a=B b=D
--link
irá "quebrar" para que todos os argumentos sejam consumidos, enquanto :::+
irá ignorar o argumento extra. Pessoalmente, não gosto quando as coisas são ignoradas silenciosamente, e é por isso que minha preferência é --link
. YMMV.