假设我有一个显示一些动画的脚本:
\n\nwhile [ condition ]\ndo\n echo -ne "\\rfinished \xe1\x95\x99( \xe1\x90\x95 )\xe1\x95\x93 "\n sleep 0.3\n echo -ne "\\rfinished \xe1\x95\x95( \xe1\x90\x9b )\xe1\x95\x97 "\n sleep 0.3\ndone\n
Run Code Online (Sandbox Code Playgroud)\n\n问题是光标在跳舞的小家伙旁边闪烁,这对我来说是一个(轻微的)不便,我更希望光标被隐藏。
\n\n所以我尝试了tput civis
隐藏光标。问题是你需要运行tput cnorm
才能使其恢复正常。在我的例子中,如果我尝试:
tput civis\nwhile [ condition ]\ndo\n echo -ne "\\rfinished \xe1\x95\x99( \xe1\x90\x95 )\xe1\x95\x93 "\n sleep 0.3\n echo -ne "\\rfinished \xe1\x95\x95( \xe1\x90\x9b )\xe1\x95\x97 "\n sleep 0.3\ndone\ntput cnorm\n
Run Code Online (Sandbox Code Playgroud)\n\n这很有效,除非用户Ctrl-C
退出我的程序,这将导致他们有一个不可见的光标,这确实很烦人。
我尝试像这样运行脚本:
\n\n./script || tput cnorm\n
Run Code Online (Sandbox Code Playgroud)\n\n但这没有帮助。(我也希望能够运行脚本./script
)
这开始是一个愚蠢的问题,但现在我真的很想知道如何解决它。
\n\n那么,这个问题有解决方案吗?还是我必须忍受动画旁边这个闪烁的小光标?
\nSea*_*ght 11
你能用吗trap
?
function cleanup() {
tput cnorm
}
trap cleanup EXIT
tput civis
while [ condition ]
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6910 次 |
最近记录: |