如何在shell脚本中添加进度条?

2023-12-12

在 bash 或 *NIX 中的任何其他 shell 中编写脚本时,如果运行的命令需要花费几秒钟的时间,则需要进度条。

例如,复制大文件、打开大 tar 文件。

您建议使用哪些方法向 shell 脚本添加进度条?


您可以通过覆盖一行来实现这一点。使用\r返回行首而不写入\n到航站楼。

Write \n当你完成推进线时。

Use echo -ne to:

  1. 不打印\n and
  2. 识别转义序列,例如\r.

这是一个演示:

echo -ne '#####                     (33%)\r'
sleep 1
echo -ne '#############             (66%)\r'
sleep 1
echo -ne '#######################   (100%)\r'
echo -ne '\n'

在下面的评论中,puk 提到如果您从长行开始然后想写短行,则会“失败”:在这种情况下,您需要覆盖长行的长度(例如,使用空格)。

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

如何在shell脚本中添加进度条? 的相关文章

  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 通过 SSH 的 sbt (Scala) 结果找不到命令,但如果我自己这样做就可以工作

    所以我正在尝试做一些涉及跑步的事情sbt通过 SSH 命令 这就是我正在尝试的 ssh my username
  • 将操作分配给 Automator 中的变量以在 Shell 脚本中使用

    好吧 这件事现在让我发疯 因此 操作 1 选择一个文件夹 我想将该文件夹的路径保存为 var 1 操作 3 选择一个文件 我想将该文件的路径保存为 var 2 所以到底 var 1 Users Prometheus Desktop var
  • rsync :递归同步所有文件,同时忽略目录结构

    我正在尝试创建一个 bash 脚本 用于将音乐从桌面同步到移动设备 桌面是源 有没有办法让rsync递归同步文件但忽略目录结构 如果从桌面删除了文件 我希望它也在设备上删除 我的桌面上的目录结构是这样的 Artist1 Artist1 ar
  • bash 递归xtrace

    有没有办法运行 bash 脚本 X 以便如果 X 调用可执行 bash 脚本 Y 则 Y 以 sh eux 开头 X sh Y sh Y sh bin sh echo OK 可以通过导出子 shell 使用父 shell 中设置的相同 sh
  • bash 如何识别链接?

    在捕获 href 链接的 bash 脚本中 bash 如何知道 TEXT 是链接而不是典型的字符串 为什么最后当 TEXT www google com 时 TEXT 仍然是一个链接 你能用一个文件做到这一点吗 例如 有一个运行脚本的 点击
  • 使用 awk 将特定子字符串与正则表达式匹配

    我正在处理特定的文件名 并且需要从中提取信息 文件名的结构类似于 20100613 M4 28007834 005 F RANDOMSTR raw gz RANDOMSTR 是最多 22 个字符的字符串 并且可能包含 或不包含 格式为 W
  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • 嵌入定义绑定变量的 Oracle PL/SQL 代码的 Shell 脚本

    如果我运行下面的脚本 我会收到错误SP2 0552 未声明绑定变量 OUTRES 那么 如何定义绑定变量OUTRES以及在哪里定义呢 usr bin bash sqlplus s scott tiger lt lt EOF declare
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • 无法让 ASCII 艺术回显到控制台

    我是 Bash 脚本新手 这让我感到困惑 我正在将 ASCII 艺术添加到项目中 但似乎无法弄清楚如何转义某些字符 有人可以帮我让下面的代码正常工作吗 每当我尝试添加斜杠作为转义字符来修复错误时 斜杠也会在执行时打印到控制台 这破坏了形象
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f
  • 如何使用 shell 脚本解压所有 .tar.gz?

    我试过这个 DIR path tar gz if ls A DIR 2 gt dev null then echo not gz else tar zxvf path tar gz C path tar fi 如果该文件夹有一个 tar 则
  • 零垫重命名,例如图片 (2).jpg -> 图片 (002).jpg

    我需要按照标题在所有子文件夹中解释的方式重命名所有图像 我正在考虑用正则表达式提取括号内的数字 然后重命名它 搜索周围我看到有类似的工具rename and mmv但我无法让他们重新命名 jpg 我将不胜感激任何解决我的问题的建议 顺便说一
  • 在 bash 中将 nameref 设为常规变量

    EDIT 这已被确认为一个错误并将被修复 https lists gnu org archive html bug bash 2018 03 msg00055 html https lists gnu org archive html bu
  • 终止 ssh 会话会终止正在运行的进程

    我正在使用 ssh 连接到我的 ubuntu 服务器 我使用命令启动编码程序 然而 似乎当我的 ssh 会话关闭时 因为我在进入睡眠状态的笔记本电脑上启动它 有没有办法避免这种情况 当然 阻止我的笔记本电脑休眠并不是永久的解决方案 运行你的
  • 如何将字符串推送到标准输入?在启动时通过 stdin 提供输入,然后以交互方式读取 stdin 输入 [重复]

    这个问题在这里已经有答案了 有没有办法在调用程序时将字符串 推送 到程序的标准输入流 这样我们就可以达到这样的效果 echo something my program 但不是在之后读取 EOF something my program将从原
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • Bash:替换管道标准输入中的子字符串

    我尝试用新的子字符串替换标准输入中的某个子字符串 在读取几个文件后 我必须从管道获取标准输入cat 然后我想将更改后的字符串向前推到管道中 这是我尝试做的 cat file1 file2 echo cat path to file path

随机推荐

  • .NET core 3.0 和 MS Office 互操作

    我正在尝试使用互操作程序集将最近发布的 NET 核心与 MS Office 结合使用 我有一个最小的项目文件
  • Meteor.call 回调中对 sys.exec 的 Meteor 回调

    我有一个事件触发Metor call Meteor call runCode myCode function err response Session set code response console log response But m
  • 假定大小的数组:冒号与星号 - DIMENSION(:) arr 与 arr(*)

    这两种声明假定大小数组的方法有什么区别吗 e g real dimension arr and real arr 表格 real dimension arr 声明一个假设形状数组 而形式 real arr 声明一个假设大小大批 是的 它们的
  • PHP SQL注入预防无需参数绑定[重复]

    这个问题在这里已经有答案了 可能的重复 PHP中如何防止SQL注入 我正在为我的大学图书馆工作一个视频流网站 我正在使用 PHP 和 MySql 我在这个项目中没有使用任何参数化查询 最近我开始了解SQL注入 现在我的代码已经快完成了 过两
  • 混合实数和位向量

    我有两个使用实数的 SMT2 Lib 脚本 它们在道德上是等效的 唯一的区别是 一个也使用位向量 而另一个则不使用 这是同时使用实数和位向量的版本 uses both reals and bit vectors set option pro
  • intellij 错误地指出没有为自动装配存储库找到类型的 beans

    我创建了一个简单的单元测试 但 IntelliJ 错误地将其突出显示为红色 将其标记为错误 没有豆子吗 正如您在下面看到的那样 它通过了测试吗 那么它一定是自动装配的吗 我在创建时遇到了同样的问题春季启动应用程序使用他们的 SpringBo
  • C#:异步NamedPipeServerStream理解

    我试图找到任何好的 清晰的异步 NamedPipeServerStream 示例 但找不到任何适合我的示例 我想要 NamedPipe 服务器异步接受来自客户端的消息 客户端很简单 对我来说很好 但我找不到服务器的示例 或者无法理解它是如何
  • VBscript 检查特定时间范围内文件是否存在(可以使用通配符)

    大家早上好 我一直在尝试将 VBscript 放在一起 当脚本执行时 它会从用户那里获取文件路径和文件名 其中可能有通配符 然后 该脚本将检查指定目录中是否有与提供的文件名相匹配的文件 然后查看上次修改日期以查看它是否是在特定时间范围内 即
  • http.request 中的 nodeJS 最大标头大小

    使用nodeJS v0 10 28 http请求中标头内容的大小 长度是否有限制 让我解释 我需要使用第三方提供商提供的休息服务 返回给我的数据位于请求的标头中 正文大部分为空 120 个左右字符 标头中的数据量从几个字符到几百kb不等 v
  • 使用 UPDLOCK 的 LinQ To SQL

    有没有办法将 UPDLOCK 与 LinQ To SQL 一起使用 我有一个场景需要它 Thanks Linq2SQL 目前不支持发出 UPDLOCK 更多信息here and here 如果您需要这样做 您可以将自己的 SQL 包装在 S
  • 多个文件上传[重复]

    这个问题在这里已经有答案了 如何在任何位置上传多个文件 我的问题是 我正在选择多个文件 但是当我单击上传按钮时 仅上传最后一个文件并重命名名称 并且重命名名称是所有文件名附加逗号 如下所示 file1 file2 flie3 这是代码 Fi
  • Swift 动态库是否向后兼容较旧的 Swift 版本项目

    我开始从头开始开发 SDK 我不太确定应该用 Swift 还是 Objective C 来编写它 我觉得 Swift 在很多方面都比 Objective C 更好 但我的主要问题是 Swift 动态库是否支持旧版本的 Swift 假设我在
  • jQuery Datatables 大数据集未捕获类型错误:无法读取未定义的属性“mData”

    因此 我在使用 php 从数据库迭代的一大组行上收到控制台错误 我正在用 metronic 主题初始化它 正如你所看到的 我有我的头部和身体 我怀疑这个问题可能与输出的大小有关 可能需要使用另一种方法 任何指导表示赞赏 table clas
  • PyQt 从用户处获取日期

    我在 Qt Designer 中使用按钮和 QDateEdit 构建了简单的小部件 用户将日期输入到 QDateEdit 中 然后当他按下按钮时 日期将被保存到变量中 我该怎么做 你可以简单地做到这一点 var name self date
  • 获取 Android Context 的各种方法有什么区别?

    在我见过的各种 Android 代码中 public class MyActivity extends Activity public void method mContext this since Activity extends Con
  • Android ListView 设置要显示的项目数

    如何设置列表中显示的项目数而不滚动 示例 我有一个包含 10 项的列表 我希望只显示 3 个项目 并且我必须滚动才能看到其余的项目 我认为列表视图中显示的项目数量取决于列表可用的大小 我会尝试限制列表大小的布局 如此详细的布局可能不太容易实
  • Play-Framework 2.4:使用 Spring 依赖注入与 Play-Framework 代替 Guice

    我在用Spring Depedency注射代替Play Framework Guice依赖注入 由于你的要求 我们需要使用大部分Spring Modules在我们的应用程序中 例如Spring Data Mongodb但问题是 我们的依赖项
  • Spark Read Json:如何读取整数和结构之间交替的字段

    尝试将多个 json 文件读入数据帧 两个文件都有一个 Value 节点 但该节点的类型在整数和结构之间交替 File 1 Value 123 File 2 Value Value On ValueType State IsSystemVa
  • WKWebView中是否可以关闭位置权限?

    我想知道是否可以阻止WKWebView显示位置权限提示 website com 想要使用您当前的位置 我相信它正在显示 因为该网站包含谷歌地图 我对在其位置预加载位置不感兴趣 就像其他问题中所示 我只是不想在 WKWebView 中使用位置
  • 如何在shell脚本中添加进度条?

    在 bash 或 NIX 中的任何其他 shell 中编写脚本时 如果运行的命令需要花费几秒钟的时间 则需要进度条 例如 复制大文件 打开大 tar 文件 您建议使用哪些方法向 shell 脚本添加进度条 您可以通过覆盖一行来实现这一点 使