Vamos dar uma simples for loop
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
O ponto-e-vírgula AFAIK nos scripts bash faz com que o shell execute o comando atual de forma síncrona e depois vá para o próximo. Pressionar enter faz literalmente o mesmo, exceto que não permite que você insira o comando a seguir, liberando o buffer imediatamente.
Então, por que o shell não pode interpretar a seguinte linha
for i in `seq 1 10`; do; echo $i; done
como isso for looprealmente funciona?
do.