Você pode fazer isso canalizando para o mysql:
while …
do
⋮
echo "INSERT INTO IP_MACTable (IP_Address, MAC) VALUES ('$ip','$mac');"
done | mysql -u root …
Observe como alterei o loop while
para gerar as consultas que ele deseja executar para o stdout. Então eu cansei de você enquanto ... fiz o loop para mysql
.
Você pode canalizar uma sub-sela também, por exemplo, você poderia fazer:
(
echo "BEGIN;"
while … ; do
⋮
echo "INSERT INTO IP_MACTable (IP_Address, MAC) VALUES ('$ip','$mac');"
done
echo "COMMIT;"
) | mysql -u root …
de modo que, se você cancelar o processamento no meio, o MySQL irá reverter a transação, para que você não termine com um arquivo semi-carregado. Além disso, a execução dentro de uma transação (em vez de confirmar cada linha individualmente) é geralmente muito mais rápida.