假设我有一个显示小动画的脚本:
while [ condition ]
do
echo -ne "\rfinished ᕙ( ᐕ )ᕓ "
sleep 0.3
echo -ne "\rfinished ᕕ( ᐛ )ᕗ "
sleep 0.3
done
问题是光标在跳舞的小家伙旁边闪烁,这对我来说是一个(轻微的)不便,我希望光标被隐藏。
所以我尝试了
tput civis
这确实隐藏了光标。问题是你需要运行tput cnorm
使其恢复正常。在我的例子中,如果我尝试:tput civis
while [ condition ]
do
echo -ne "\rfinished ᕙ( ᐕ )ᕓ "
sleep 0.3
echo -ne "\rfinished ᕕ( ᐛ )ᕗ "
sleep 0.3
done
tput cnorm
这很有效,除非用户
Ctrl-C
s out of my program,这会导致他们有一个不可见的光标,这真的很烦人。我试图像这样运行脚本:
./script || tput cnorm
但它没有帮助。 (我也希望能够仅使用
./script
运行脚本)这开始是一个愚蠢的问题,但现在我真的很想知道如何解决它。
那么,这个问题是否有解决方案,或者我是否必须容忍我的动画旁边的这个小闪烁的光标?
最佳答案
你能用 trap
吗? ?
function cleanup() {
tput cnorm
}
trap cleanup EXIT
tput civis
while [ condition ]
...
关于linux - 如何在脚本期间隐藏终端中的光标并在命令中断时将其恢复正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712760/