/ / Чи можна друкувати курсор на клавіатурі в терміналі, використовуючи сценарії Bash? - bash, shell, unix

Чи можна друкувати крутний курсор у терміналі за допомогою сценаріїв bash? - bash, shell, unix

Я бачив рішення, які використовують c,python,ruby але баш. Найближчий можливий дизайн, який я знайшов, використовував цей розчин для рубінового консолі

10.times {
print "/"
sleep(0.1)
print "b"
print "-"
sleep(0.1)
print "b"
print "\"
sleep(0.1)
print "b"
print "|"
sleep(0.1)
print "b"
}

Я хочу щось подібне до цього.

Відповіді:

4 для відповіді № 1

Спайлери хороші, але якщо ви дійсно хочете керований показник прогресу, який знає про ІО, з яким ви маєте справу, подивіться на пв.

Ось тут швидкий і брудний обертач. (Багато нестандартних реалізацій sleep дозволить вам спати на частку секунди.)

spin() {
local -a marks=( "/" "-" "" "|" )
while [[ 1 ]]; do
printf "%sr" "${marks[i++ % ${#marks[@]}]}"
sleep 1
done
}

POSIX Sh

spin() {
i=0
marks="/ -  |"
while true; do
if [ $# -lt 4 ]; then
set -- "$@" $marks
fi
shift $(( (i+1) % $# ))
printf "%sr" "$1"
sleep 1
done
}

0 для відповіді № 2

Той же, що @ kojiro але без printf

spin() {
local -a marks=( "/" "-" "" "|" );
while [[ 1 ]]; do
echo -ne "${marks[i++ % ${#marks[@]}]}";
sleep 1;
echo -ne "b";
done;
}