L'istruzione di inserimento deve essere inviata a mysql, non un'altra riga nello script della shell, quindi è necessario renderla un "documento qui".
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
Il << EOF
significa prendere tutto prima della riga successiva che non contiene altro che EOF
(nessuno spazio bianco all'inizio) come input standard per il programma.