Se for para processamento de texto, o mais óbvio é usar awk , que é especialmente projetado para isso (embora perl ou sed também possa ser usado)
awk -F, '{print "something with "$1" and "$2}'
Se a entrada for um CSV real que poderia ter valores mais complexos, como:
"field, with comma" , "and with
newline", "or ""quotes"""
Você pode querer usar perl ou python ou alguns utilitários de análise csv dedicados.
Se os campos tiverem que ser disponibilizados como variáveis de shell, porque por exemplo você precisa executar alguns comandos específicos com esses campos como argumentos, então você faria algo como:
while IFS=, read -r a b rest; do
something-with "$a" "$b"
done
Veja também o GNU parallel para executar as coisas em paralelo:
PARALLEL_SHELL=sh parallel -C, 'something-with {1} {2}'
Mas cuidado, o GNU parallel traz uma sobrecarga significativa para que a paralelização valha a pena.
O shell ksh93 pode realmente entender o formato CSV (manipular citações de campos individuais, como no exemplo complexo acima)
while IFS=, read -rS a b rest; do
do-something-with "$a" "$b"
done