Como Stephen Kitt escreve, é impossível passar valores de filho para pai - ou seja, você não pode fazer isso sem trapacear .
Felizmente para você, versões mais recentes do GNU Parallel incluem um truque chamado parset
. parset
é uma função de shell que você precisa ativar primeiro.
$ . 'which env_parallel.bash' # Replace bash with zsh, ksh, ash, dash, sh as needed
$ parset a,b,c echo ::: 5 6 7
$ echo $a
5
Se o shell suportar matrizes:
$ parset arr echo ::: 5 6 7
$ echo ${arr[1]}
5 (in zsh) 6 (otherwise)
Como Stephen Kitt indica isso é muito mais lento do que simplesmente atribuir o valor numérico. Mas eu entendo que o seu exemplo é apenas um MCVE, então a situação real será muito mais complexa e, portanto, pode ser necessária a execução em paralelo.