Linux 如何在脚本期间将光标隐藏在终端中,并在命令中断时将其恢复到正常状态?
假设我有一个脚本,它显示了一点动画:Linux 如何在脚本期间将光标隐藏在终端中,并在命令中断时将其恢复到正常状态?,linux,bash,shell,Linux,Bash,Shell,假设我有一个脚本,它显示了一点动画: while[条件] 做 echo-ne“\r已完成ᕙ( ᐕ )ᕓ " 睡眠0.3 echo-ne“\r已完成ᕕ( ᐛ )ᕗ " 睡眠0.3 完成 问题是,光标在跳舞的小家伙旁边闪烁,这对我来说是一个(轻微的)不便,我希望光标是隐藏的 因此,我尝试了tput civis,它确实隐藏了光标。问题是您需要运行tput cnorm,使其恢复正常。在我的示例中,如果我尝试: tput civis while[条件] 做 echo-ne“\r已完成ᕙ( ᐕ )ᕓ "
while[条件]
做
echo-ne“\r已完成ᕙ( ᐕ )ᕓ "
睡眠0.3
echo-ne“\r已完成ᕕ( ᐛ )ᕗ "
睡眠0.3
完成
问题是,光标在跳舞的小家伙旁边闪烁,这对我来说是一个(轻微的)不便,我希望光标是隐藏的
因此,我尝试了tput civis
,它确实隐藏了光标。问题是您需要运行tput cnorm
,使其恢复正常。在我的示例中,如果我尝试:
tput civis
while[条件]
做
echo-ne“\r已完成ᕙ( ᐕ )ᕓ "
睡眠0.3
echo-ne“\r已完成ᕕ( ᐛ )ᕗ "
睡眠0.3
完成
tput cnorm
这很好,除非用户Ctrl-C
s退出我的程序,这将导致他们有一个不可见的光标,这真的很烦人
我试着像这样运行脚本:
/script | | tput cnorm
但是它没有帮助。(我更希望能够使用/script
)运行脚本)
这开始是一个愚蠢的问题,但现在我真的很想知道如何解决它
那么,这个问题有解决办法吗?或者我必须容忍动画旁边的小光标闪烁吗?你能用吗
function cleanup() {
tput cnorm
}
trap cleanup EXIT
tput civis
while [ condition ]
...