我见过使用c
,python
,ruby
但使用bash的解决方案。我发现最接近的设计是使用这个红宝石控制台解决方案
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"
}
我想要一种与之相似的效果。
答案 0 :(得分:4)
Spinners很不错,但是如果你真的想要一个可控的进度表,它知道你正在处理的IO,请看看pv。
这是一个快速而肮脏的微调器。 (许多sleep
的非标准实现会让你在几分之一秒内睡不着觉。)
spin() {
local -a marks=( '/' '-' '\' '|' )
while [[ 1 ]]; do
printf '%s\r' "${marks[i++ % ${#marks[@]}]}"
sleep 1
done
}
spin() {
i=0
marks='/ - \ |'
while true; do
if [ $# -lt 4 ]; then
set -- "$@" $marks
fi
shift $(( (i+1) % $# ))
printf '%s\r' "$1"
sleep 1
done
}
答案 1 :(得分:0)
与@kojiro相同但没有printf
spin() {
local -a marks=( '/' '-' '\' '|' );
while [[ 1 ]]; do
echo -ne "${marks[i++ % ${#marks[@]}]}";
sleep 1;
echo -ne "\b";
done;
}