作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取任何输出到屏幕的程序,捕获输出,并在某些关键字输出到屏幕之前对其进行着色。例如,这是正常的程序输出:
bash# <program>
blah blah blah <-- this output has no color
对比
bash# <program>
blah blah blah <-- this output is colorful
理想情况下,程序是什么并不重要。我只是在寻找一种将更多颜色融入我的 konsoles 的好方法。
编辑:抱歉,应该已经清楚了。我不只是试图着色 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"
参见 terminfo用于终端功能的长列表。带有后缀 -m
(例如 ansi-m
)的 $TERM
表示屏幕是单色的,但只要颜色有效,以下字符串能力应该是非空的:
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 非常标准:黑色、红色、绿色、黄色、蓝色、品红色、青色、白色。除此之外可能不存在或可能更多变。
关于bash - 如何在 bash shell 中自动为程序输出着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085432/
我是一名优秀的程序员,十分优秀!