Acho que você pode fazer o que quiser sem o awk:
cat "${smryfile}" | while IFS=: read first last varx
do
echo "first='$first' last='$last' varx='$varx'"
# do something
done
Isso produz:
first='Joe' last='Johnson' varx='25'
first='Sue' last='Miller' varx='27'
Observe que essa abordagem funcionará mesmo que alguns nomes no arquivo incluam espaços.
Note também que o uso de cat
acima não é necessário:
while IFS=: read first last varx
do
echo "first='$first' last='$last' varx='$varx'"
# do something
done <"${smryfile}"
Um benefício colateral de remover cat
, conforme o acima, é que quaisquer variáveis que você criar no loop sobreviverão após o término do loop.