这是我的bash文件的一部分。我需要的输出是:
[ - ] KatworX版权所有©Tech。由Arjun Singh Kathait开发并由☆Stack Overflow社区调试☆
我希望在显示echo命令时,微调器动画继续旋转5秒钟。社区可以帮助???
null
答案 0 :(得分:2)
继续发表评论。为避免在每次迭代时调用ps
,awk
和grep
,您需要将PID作为参数传递给spin函数。 (并且您可以传递字符串以显示并默认为您的字符串)。我会做类似的事情:
#!/bin/bash
## spinner takes the pid of the process as the first argument and
# string to display as second argument (default provided) and spins
# until the process completes.
spinner() {
local PROC="$1"
local str="${2:-'Copyright of KatworX© Tech. Developed by Arjun Singh Kathait and Debugged by the ☆Stack Overflow Community☆'}"
local delay="0.1"
tput civis # hide cursor
printf "\033[1;34m"
while [ -d /proc/$PROC ]; do
printf '\033[s\033[u[ / ] %s\033[u' "$str"; sleep "$delay"
printf '\033[s\033[u[ — ] %s\033[u' "$str"; sleep "$delay"
printf '\033[s\033[u[ \ ] %s\033[u' "$str"; sleep "$delay"
printf '\033[s\033[u[ | ] %s\033[u' "$str"; sleep "$delay"
done
printf '\033[s\033[u%*s\033[u\033[0m' $((${#str}+6)) " " # return to normal
tput cnorm # restore cursor
return 0
}
## simple example with sleep
sleep 5 &
spinner $!
(它显示为蓝色 - 但您可以删除第一个printf
以删除颜色)