while true;do echo -n .;sleep 1;done &
sleep 10 # or do something else here
kill $!; trap 'kill $!' SIGTERM
echo done
isto iniciará um loop while infinito que ecoa spinner a cada segundo, isto é executado em segundo plano.
Execute o comando sleep ou qualquer comando desejado.
Quando esse comando terminar a execução, isso matará o último trabalho em execução em segundo plano (que é o loop while infinito)
fonte: link
Você pode usar vários loops while, por exemplo. um spinner como este:
while :;do for s in / - \ \|; do printf "\r$s";sleep 1;done;done