I want to take any program that outputs to the screen, catch the output, and colorize certain keywords before they are output to the screen. For example, here's the normal program output:
bash# <program>
blah blah blah <-- this output has no color
vs.
bash# <program>
blah blah blah <-- this output is colorful
Ideally it doesn't matter what the program is. I'm just looking for a good way to incorporate more color into my konsoles.
Edit: Sorry, should've been clear. I'm not trying to just colorize shell script outputs.
#!/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 for a long listing of terminal capabilities. A $TERM with suffix -m (e.g. ansi-m) means the screen is monochrome, but as long as color works, the following string capabilities should be non-empty:
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
Colors 0-7 are pretty much standard: black, red, green, yellow, blue, magenta, cyan, white. Beyond that may not exist or may be more variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With