在许多 Linux 程序中,如 curl、wget 和任何带有进度表的程序,它们的底线每隔一定时间就会不断更新。我如何在 bash 脚本中执行此操作?我现在所能做的就是回显一个新行,这不是我想要的,因为它会累积。我确实遇到了一些提到“tput cup 0 0”的东西,但我试过了,它有点古怪。什么是最好的方法?
最佳答案
{
for pc in $(seq 1 100); do
echo -ne "$pc%\033[0K\r"
usleep 100000
done
echo
}
“\033[0K”将删除到行尾 - 以防您的进度行在某个时候变短,尽管这对于您的目的而言可能不是必需的。
"\r"将光标移动到当前行的开头
echo 上的 -n 将阻止光标前进到下一行
关于bash 脚本,删除上一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861428/