我想把任何输出到屏幕的程序,捕获输出,并在某些关键字输出到屏幕之前着色.例如,这是正常的程序输出:
bash# <program>
blah blah blah <-- this output has no color
Run Code Online (Sandbox Code Playgroud)
与
bash# <program>
blah blah blah <-- this output is colorful
Run Code Online (Sandbox Code Playgroud)
理想情况下,程序是什么并不重要.我只是想找到一种将更多颜色融入我的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"
Run Code Online (Sandbox Code Playgroud)
有关终端功能的详细列表,请参阅terminfo.$TERM带后缀-m(例如ansi-m)的A 表示屏幕是单色的,但只要颜色有效,以下字符串功能应该是非空的:
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非常标准:黑色,红色,绿色,黄色,蓝色,品红色,青色,白色.除此之外可能不存在或可能更多变.