Você pode usar o read
builtin e dizer que ele deve dividir a linha em vírgulas usando a variável de shell IFS
(separador de campo de entrada):
$ cat file
user1,host1,pass1
user2,host2,pass2
$ while IFS="," read -r user host pass; do echo "$user:$host:$pass"; done < file
user1:host1:pass1
user2:host2:pass2
Então, no seu script, você gostaria de algo como:
while IFS="," read -r user host pass; do
if mysql -h "$host" -u "$user" -p"$pass" -e exit; then
echo "Connection established"
else
echo "Connection failed" fi;
done < file
O acima, no entanto, será quebrado se alguma de suas senhas (ou outras variáveis, mas eu suponho que apenas as senhas possam ter esse problema) conterem uma vírgula. Se isso pode ser um problema para você, você terá que mudar o separador para outra coisa em vez de uma vírgula. Algo que nunca aparecerá em uma senha. Por exemplo, uma guia e, em seguida, você pode fazer:
while IFS=$'\t' read -r user host pass; do
if mysql -h "$host" -u "$user" -p"$pass" -e exit; then
echo "Connection established"
else
echo "Connection failed" fi;
done < file