Tente fazer assim:
lstusers=""
while read LINHA
do
idcurr=$(echo $LINHA | awk -F: '{print $4}')
nome=$(echo $LINHA | awk -F: '{print $1}')
idcurr=":$idcurr:"
if [ ! -z $idcurr ]
then
achei=$(echo $listaIDs | grep -c $idcurr)
if [ $achei -ne 0 ]
then
if [ -z $lstusers ]
then
lstusers=$nome
else
lstusers="$lstusers,$nome"
fi
fi
fi
# Na linha abaixo, lstusers aparece corretamente.
echo "Ao sair do if principal do while lstusers vale $lstusers"
done < <(cat /etc/passwd)
>
>
>
>
[As partes desta mensagem que não continham texto foram removidas]