Eu li isso na página de manual do bash :
% bl0ck_qu0te%para que você possa substituir seu loop:
arrSNPsString="$(IFS="|"; echo "${arrSNPsToBeExtracted[*]}" )"
echo "$arrSNPsString"
Eu tentei isso diretamente no prompt do bash:
a[1]=aaaa
a[2]="bbbb cccc"
a[3]=dddd
b="$(IFS="|"; echo "${a[*]}")"
echo "$b"
quais impressões:
aaaa|bbbb cccc|dddd
Não mexa no IFS, sempre restaure seu valor antigo depois de tê-lo alterado. A sintaxe $(..)
neste código faz isso para você.