Sim, você está certo, isso é semelhante a " Como posso fazer variáveis de ambiente" exportadas "em um script de shell ficar por aqui? ".
Se você definir uma variável como:
COUNTER=$((COUNTER+1))
então ele existe apenas no shell atual. Ele não será visto por subshells que este shell cria ou pelo shell de chamada. Ao usar a exportação:
export COUNTER=$((COUNTER+1))
então a variável também é vista pelos subshells deste shell.
Quando você cria 5 processos com xargs, cada um herda o ambiente do shell de chamada. No entanto, eles não compartilham quaisquer alterações no ambiente entre si.