Can I do a spinner in Bash?
Sure.
i=1 sp="/-\|" echo -n ' ' while true do echo -en "\b${sp:i++%${#sp}:1}" done
You can also use \r instead of \b. You can use pretty much any character sequence you want as well. If you want it to slow down, put a sleep command inside the loop.
To use as a function called from a loop on every iteration, for example:
sp="/-\|" sc=0 spin() { echo -ne "\b${sp:sc++:1}" ((sc==4)) && sc=0 }
When printing the next output line (ie when the spin is over) use: echo -e "\r$line" or: echo -en '\r'; echo "$line"
A similar technique can be used to build progress bars.