我想获取任何输出到屏幕的程序,捕获输出,并在某些关键字输出到屏幕之前对它们进行着色。例如,这是正常的程序输出:
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(使用前将#替换为@)