Muito obrigado pela valiosa ajuda. Eu dei uma olhada em todos os pedaços de código, e todos parecem muito longos para o que estou fazendo.
Portanto, com base nisso, refiz apenas um pequeno código que estou compartilhando com você.
#! /bin/bash
state=1
delay=0.5
printf "-"
sleep $delay
while [ 1 ]
do
printf "\b"
case $state in
0) printf "-";;
1) printf "\";;
2) printf "|";;
3) printf "/";;
esac
if [ $state -eq 3 ]
then
state=0;
else
state=$((state+1));
fi
sleep $delay
done
Claro, isso pode funcionar como um código independente, mas retire a linha de base e você pode inseri-la facilmente em um script e, eventualmente, reduzi-la um pouco mais. A única coisa é sobre a condição, que agora está correndo para sempre, então tem que sair sua própria condição para parar.
Espero que você ache útil. ; -)