如何在 bash shell 中自动为程序输出着色?

2024-02-17

我想获取任何输出到屏幕的程序,捕获输出,并在某些关键字输出到屏幕之前对它们进行着色。例如,这是正常的程序输出:

bash# <program>
blah blah blah       <-- this output has no color

vs.

bash# <program>
blah blah blah       <-- this output is colorful

理想情况下,程序是什么并不重要。我只是在寻找一种将更多颜色融入我的鞋底的好方法。

编辑:抱歉,应该已经很清楚了。我不只是试图对 shell 脚本输出进行着色。


#!/bin/sh
redf=$(tput setaf 1)
redb=$(tput setab 1)
reset=$(tput op)
echo "${redf}red${reset} in front, ${redb}red${reset} in back"

See terminfo http://www.opengroup.org/onlinepubs/007908799/xcurses/terminfo.html查看一长串终端功能。 A$TERM带后缀-m (e.g. ansi-m) 表示屏幕是单色的,但只要颜色有效,以下字符串功能就应该非空:



       enter_bold_mode               bold         md        turn on bold (extra
                                                            bright) mode
       enter_italics_mode            sitm         ZH        Enter italic mode
       enter_reverse_mode            rev          mr        turn on reverse
                                                            video mode
       orig_pair                     op           op        Set default pair to
                                                            its original value
       set_a_background              setab        AB        Set background
                                                            color to #1, using
                                                            ANSI escape
       set_a_foreground              setaf        AF        Set foreground
                                                            color to #1, using
                                                            ANSI escape
  

颜色 0-7 几乎是标准颜色:黑色、红色、绿色、黄色、蓝色、品红色、青色、白色。除此之外可能不存在或者可能更加可变。

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

如何在 bash shell 中自动为程序输出着色? 的相关文章

  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • 目录 * 和文件顺序

    我需要将目录中的所有文件连接到一个文件 但具有指定名称的文件必须位于输出的顶部 只是在做cat gt result将按字母顺序连接所有文件 有什么办法告诉猫放置文件vars css或任何其他输出的开头 现在我只是重命名文件需要首先000 f
  • 生成 n 色彩虹调色板

    我正在尝试用 可运行的代码在这里 http sketchpad cc XEXd5II9nC size 360 100 colorMode HSB 360 100 100 Hue in degrees in 0 360 saturation
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 如何删除最后一次出现模式后的所有行?

    我想删除最后一次出现模式之后的所有行 除了模式本身 file txt honor apple redmi nokia apple samsung lg htc file txt 我想要什么 honor apple redmi nokia a
  • 使用正确的头打印文件名

    我想获取当前目录中的文件名 使得文件的第一行等于myWord 我想结合find type f命令与 exec选项与head 1 filename但无济于事 有没有一些聪明的 单行的解决方案来解决这个问题 您可以使用find with awk
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 从 bash 从新的 Google Chrome 浏览器会话获取“用户代理”字符串

    我想要得到用户代理 HTTP 请求标头 https developer mozilla org en US docs Web HTTP Headers User Agent来自 bash 的新 Google Chrome 浏览器会话 刚刚打
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • bash 中 :-(冒号破折号)的用法

    bash中这种风格的含义是什么 PUBLIC INTERFACE eth0 目的是什么 If PUBLIC INTERFACE存在且不为null 则返回其值 否则返回 eth0 实际上有一些记录在bash 手册页 http linux di
  • bash 行长度限制从何而来?

    在运行 Bash 4 4 19 标准安装 的 Solaris 11 上 输入行似乎有 256 个字符的限制 我想了解这个限制从何而来 我浏览了手册页 但没有找到任何解决此问题的内容 仅当未使用 readline 库时才会发生这种情况 在下面
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 bash 脚本中提取 XML 值 [重复]

    这个问题在这里已经有答案了 我正在尝试从 xml 文档中提取一个值 该文档已作为变量读入我的脚本中 原始变量 data is
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug

随机推荐

  • 如何计算 python 中我的列中的行的编辑比/距离?

    我有一个只有一列的数据框 该列中有 1000 行 我需要比较所有行并找到所有行的编辑距离 我如何计算Python中的比率或距离 我有一个数据框如下 Df StepDescription click confirm button when d
  • 在 django admin 中动态设置 readonly_fields

    我可以改变吗readonly fields in my TranslationAdmin类依赖于某个字段的值Translation被查看 如果是这样 我该怎么做 我唯一想到的就是制作一个小部件来查看Translation并决定是否成为只读小
  • 使用 StreamWriter 写入 MemoryStream 返回空

    我不确定我做错了什么 看过很多例子 但似乎无法让它发挥作用 public static Stream Foo var memStream new MemoryStream var streamWriter new StreamWriter
  • 删除cassandra中大型数据集的列

    我们有一个冗余列 希望从 Cassandra 数据库 版本 2 1 15 中删除 这是一个文本列 代表磁盘上的大部分数据 15 个节点 X 每个节点 1 8 TB 最简单的选择似乎是更改表来删除该列 然后让 Cassandra 压缩来处理事
  • 了解 pdo mysql 事务

    The PHP 文档 http php net manual en pdo transactions php says 如果您以前从未遇到过交易 他们提供 4 种主要的交易方式 特点 原子性 一致性 隔离性和持久性 ACID 在 通俗地说
  • JavaScript:是否定义了成员?

    在我看来 有四种不同的方法可以确定给定的对象 例如foo 具有给定的属性 例如bar 定义 if foo hasOwnProperty bar if bar in foo if typeof foo bar undefined if foo
  • C/C++ 优化数据结构、数组的数组或仅数组

    使用使用 16 字节 4v4 一字节矩阵的程序 unsigned char matrix 4 4 和一些 256bytes 16v16 一字节矩阵 unsigned char bigMatrix 16 16 很多时候 由于数据操作 我被迫在
  • Maven:如何配置native2ascii-maven-plugin

    我向你们提出这个问题 因为项目页面本身没有太多信息 基本上我设置了 native2ascii maven plugin 来处理我的一些资源 它可以很好地处理根目录中的文件 但现在我的子目录下有文件 template email 并希望将它们
  • selenium webdriver:如何在 C# 中处理 javascript onclick

    我正在使用 Selenium Web 驱动程序 C 测试一个网站 我最初的目的是检查返回 200 的 HttpWebResponse 但是 该按钮是一个 javascript onclick 事件 我想知道是否有人有过处理这种情况的经验 以
  • 从 JTable 中的行生成标准差图

    我正在尝试创建一个JTable我可以单击一行 它将显示标准偏差曲线 这是我的JTable看起来就像现在 例如 字符串的标准差screen saver action gt login login gt disclaimer ok看起来像这样
  • 如何使用枚举简化并使其更好,快速学习,枚举

    我通过以下方式定义一些范围 let range0 15 0 lt 15 let range15 30 15 lt 30 let range30 45 30 lt 45 let range45 60 45 lt 60 我真的很想用Enum为此
  • 我可以在neo4j中创建具有指定id的节点吗?

    我想在 Neo4j 中保存关系 但是 也许 我还没有决定 将对象保存在不同的数据库 类似于 Redis 中 如果要这样做 最好在存储数据库和 Neo4j 中同步 ID 那么 我可以在 Neo4j 中创建一个节点并将 ID 传递给它吗 聚苯乙
  • 如何在java中的excel文件的同一张表中插入带有值的新行

    我想在 Excel 工作表中写入时插入新行 这是我的代码 public static void addValuesInWorkbook String pathAndFileName String sheetName int rowNum S
  • 摆脱 Dagger 2 警告“生成 MembersInjector”

    给定以下课程 abstract class AbstractClass Inject SomeDependency someDependency class SomeClass extends AbstractClass Inject An
  • 使用 Inno Setup 添加卸载信息

    我正在使用 Inno Setup 为我的程序创建安装程序 但我希望能够添加图标并更改控制面板 添加 删除程序 中显示的一些信息 我知道 Inno Setup 添加了一个注册表项来获取首先列出的程序 所以我想知道是否可以以任何方式扩展它 以便
  • 将 Cloudflare CDN + HTTPS 与 Google Cloud Storage 结合使用

    我正在尝试弄清楚如何让我的 Google Cloud Storage 存储桶与 Cloudflare 配合使用 我按照这里的步骤操作https cloud google com storage docs static website htt
  • Typescript:超时的正确类型是什么?

    处理计时器时正确的类型是什么 我努力了Timeout and number let debounceResize any What should this be window addEventListener resize gt clear
  • 递减时“删除”时出现语法错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在 删除 案例中遇到语法错误 我一直在尝试修复它 但我无法弄清楚 谁能告诉我如何修复它 谢谢 该代码适用于在线商店购物车 swi
  • pandas 中列的别名

    我有一个数据框 df pd DataFrame by week list 1 by month list 2 现在我需要获取一个 html 表html df to html 其中列的生成方式如下 tr th th th by month t
  • 如何在 bash shell 中自动为程序输出着色?

    我想获取任何输出到屏幕的程序 捕获输出 并在某些关键字输出到屏幕之前对它们进行着色 例如 这是正常的程序输出 bash