bash 脚本,删除上一行?

标签 bash

在许多 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/

相关文章:

bash - 如何定义自己的终端选项卡补全

bash - if-then 和命令组的功能区别

linux - 如何将具有单列的文本文件转换为矩阵?

bash - 在 PATH 中转到 bin,但 "go version"失败

python子进程: read from pipe without closing it

Linux——解析数据,用什么语言

string - 有效/简洁地检查可变内容的开始/结束

Linux 命令模糊重定向

bash - 在 awk 中结合 if 和 NR

windows - "conda: command not found",Windows 上的 Bash