如何使用 bash 删除并替换终端中的最后一行?

2023-11-29

我想在 bash 中实现一个显示经过秒数的进度条。为此,我需要擦除屏幕上显示的最后一行(命令“clear”会擦除所有屏幕,但我只需要擦除进度条的行并将其替换为新信息)。

最终结果应如下所示:

$ Elapsed time 5 seconds

然后 10 秒后我想用以下内容替换这句话(在屏幕中的同一位置):

$ Elapsed time 15 seconds

回车符本身仅将光标移动到行首。如果每一个新的输出行至少与前一行一样长,那是可以的,但是如果新行更短,则前一行将不会被完全覆盖,例如:

$ echo -e "abcdefghijklmnopqrstuvwxyz\r0123456789"
0123456789klmnopqrstuvwxyz

要实际清除新文本的行,您可以添加\033[K之后\r:

$ echo -e "abcdefghijklmnopqrstuvwxyz\r\033[K0123456789"
0123456789

http://en.wikipedia.org/wiki/ANSI_escape_code

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 bash 删除并替换终端中的最后一行? 的相关文章

随机推荐

  • 当应用程序停用时如何关闭BackgroundWorker线程?

    我创建线程BackgroundWorker 并且在循环中我每次都会检查是否CancellationPending是真是假 就像这样 public MainPage InitializeComponent bw new BackgroundW
  • 支持通配符 (*) 的 System.StringComparer

    我正在寻找一个快速的 NET 类 库 它有一个支持通配符 和区分大小写的 StringComparer 有任何想法吗 您可以将 Regex 与 RegexOptions IgnoreCase 结合使用 然后与 IsMatch 方法进行比较
  • Java的swing print()用法

    java的swing print 是否必须在EDT 事件调度线程 上调用 众所周知 执行需要花费很长的时间 而且在 EDT 上长时间运行的事情是很痛苦的 简短的回答是 不 打印不需要在 EDT 上进行 官方教程中对此进行了介绍 如何打印文本
  • 高质量完整屏幕截图 VB.Net

    我正在尝试向我的程序添加一项功能 以便在用户单击按钮时获取用户屏幕的完整屏幕截图 我让程序截取屏幕截图并打开文件对话框来保存它 保存有效 问题是 无论我如何保存屏幕截图 保存的图像都会出现显着的质量损失 并且文本和内容周围会出现像素化 这是
  • ajax调用后f:viewParam丢失

    我有这个 f viewParam 来设置值并在视图中的 back bean 中进行搜索
  • 如何在 Javascript 中将按钮点击率限制为每分钟一次

    我有一个基于 PHP 的 Web 应用程序 用于监视进程的状态并显示具有该状态的页面 用户可以单击页面上的按钮来更新状态 但是 我的服务器上的处理负载足够重 因此不希望过于频繁地更新状态 因此 我想要一种方法来限制某人每分钟点击 提交 按钮
  • 区域设置 en-EN 是无效的区域性标识符

    我最近从一台装有 Windows 10 和 VS 2017 的计算机转移到一台装有 Windows 8 1 和 VS 2017 的计算机 我正在处理一段代码 其中有这样一行 Thread CurrentThread CurrentUICul
  • 如果我使用 celery 作为任务调度程序,如何从 python 应用程序登录到 splunk?

    我有一个在服务器上运行的 python 脚本 该脚本应该由 celery 调度程序每天执行一次 我想将日志直接从脚本发送到 splunk 我正在尝试使用这个splunk handler图书馆 如果我在本地运行没有 celery 的 splu
  • iOS 上带有 UIWebView 的多选项卡 Web 浏览器

    我正在创建一个简单的网络浏览器 我希望我的用户添加选项卡并同时浏览多个网页 就像在 Safari Firefox 或 Chrome 中一样 我已经这样做了 效果很好 但我不知道是否有更简单的方法来做到这一点 当用户添加新选项卡时 我的应用程
  • 终端进程无法启动:shell 可执行文件的路径“C:\Windows\System32”不是符号链接的文件

    我真的不知道该怎么办 有人可以帮忙吗 这是在 vscode 上 这是因为它找不到 exe可执行文件 您可以使用以下设置修复它 如果你使用cmd exe要执行脚本 请使用 terminal integrated shell windows C
  • 如何在正则表达式中匹配“直到该字符序列的任何内容”?

    采用这个正则表达式 abc 这将匹配字符串开头的任何单个字符 除了a b or c 如果您添加一个 之后 abc 正则表达式将继续将每个后续字符添加到结果中 直到满足a or b or c 例如 使用源字符串 qwerty qwerty w
  • 在 dexguarding 时没有有效的 android:name

    我正在尝试对作为系统应用程序运行的应用程序进行 dexguard 但是当我尝试将其推到system app目录中 我从 PackageParser 中收到以下错误 W PackageParser 1995 system app My apk
  • 无法将 Boost.Thread 1.46.1 与 MinGW 4.5.2 链接

    我使用以下方法构建了 boost bjam toolset gcc with thread stage 每当我尝试实际使用 Boost Thread 时 尽管我链接了它 但我都会收到未定义的引用 其他 Boost 库 例如 Regex 或
  • 将字符串转换为日历。最简单的方法是什么? [复制]

    这个问题在这里已经有答案了 将格式化字符串转换为日历的最简单方法是什么 例如日历中的 dd MM yyyy DateFormat df new SimpleDateFormat dd MM yyyy Calendar cal Calenda
  • 将 ASP.NET 部署到 Windows Azure 云,应用程序在云上运行时出现错误

    我正在尝试在 Windows Azure 云中部署 ASP NET 应用程序 我正在使用 Google API 进行应用程序中的调用之一 当我这样做时 我收到以下错误 System UnauthorizedAccessException 对
  • CodeIgniter-单击每个链接或重新加载页面时检查会话变量是否已设置

    我有一个名为 admin 的控制器 如果设置了会话变量 则可以使用控制器中的所有功能 那么当单击页面中的每个链接或重新加载页面时 检查会话是否设置的最佳方法是什么 例如 如果我在多个选项卡中打开我的管理主页 浏览器并从第一个选项卡注销 然后
  • Python PPTX条形图负值

    我使用以下代码为 python pptx 生成的条形图指定条形的特定颜色 chart series 0 format fill solid chart series 0 format fill fore color rgb RGBColor
  • 使用 JOLT 转换重命名嵌套数组中的字段

    我想使用 JOLT 转换库重命名嵌套在另一个数组中的数组中的字段 要重命名的一个字段是数组中的顶级字段 要重命名的两个字段位于嵌套数组内 我尝试过使用通配符 但它们没有给我预期的输出 我使用的是 JOLT 0 0 22 版本 输入 JSON
  • 使用 QueryByAttribute 无法检索空值

    我是 CRM 开发新手 除了 CRM 2011 中的现有值之外 我还想从我的 C 应用程序更新自定义字段值 如果该字段有一些值 那么它工作正常 但如果它为空 那么我收到 给定的键不存在于字典中 错误 下面的代码是我想要实现的目标 IOrga
  • 如何使用 bash 删除并替换终端中的最后一行?

    我想在 bash 中实现一个显示经过秒数的进度条 为此 我需要擦除屏幕上显示的最后一行 命令 clear 会擦除所有屏幕 但我只需要擦除进度条的行并将其替换为新信息 最终结果应如下所示 Elapsed time 5 seconds 然后 1