Files
bash-tut/spinner.sh
2026-01-09 12:59:07 +01:00

39 lines
476 B
Bash
Executable File

#! /usr/bin/bash
spinner_pid=
spinner() {
local chars=('\' '|' '/' '-')
local c
while true; do
for c in ${chars[@]}; do
printf "<%s>\r" "${c}"
sleep .2
done
done
}
cleanup() {
echo "done"
if [[ -n ${spinner_pid} ]]; then
kill "${spinner_pid}"
fi
echo "[$$] finished spinner"
}
main() {
trap cleanup EXIT
spinner &
spinner_pid=$!
if (( $# == 0)); then
echo "Usage: spinner <cmd>"
return 1
fi
"$@"
}
main "$@"