Embora pareça fácil, é realmente muito difícil.
Jobs iniciados pelo GNU Parallel não são iniciados dentro do mesmo shell do GNU Parallel. Então parece com isso:
bash[1]---perl(running parallel)---bash[2]
$ array é definido no bash [1], mas você quer usá-lo no bash [2]. É impossível fazer completamente (ou seja, se você quiser acesso de escrita ao array), mas nós podemos fazer uma cópia de $ array disponível:
env_parallel 'echo ${array[{}]}' ::: 1 2
env_parallel
(introduzido no GNU Parallel 20140822) copia todo o ambiente do bash [1] to bash [2] (então o seu ambiente tem que ser meio pequeno) onde é iniciado antes do job ser executado.
env_parallel
é bastante instável, por isso, se encontrar erros, denuncie-os.