Bash ansi escape codes
From wikinotes
Terminals are controled ansi escape sequences.
These sequences vary from terminal to terminal.
The tput command uses your terminal's termcap library to expose a common interface.
Colours
See list of colours https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
echo -e '\e[32m' # echo -e '\e[m' # reset colour tput setab 7 # set bg colour tput setaf 7 # set fg colour tput bold # set bold tput sgr0 # reset colours yellow=$(tput setaf 3) echo "${yellow}foo"I usually do something like this for help text
setup_colours() { if [ $(tput colors) -gt 8 ] ; then C=$(tput setaf 6) # code H=$(tput setaf 3) # heading E=$(tput setaf 1) # error B=$(tput bold) # bold R=$(tput sgr0) # reset else C=$(tput sgr0) H=$(tput sgr0) E=$(tput sgr0) B=$(tput sgr0) R=$(tput sgr0) fi }The non-portable way of handling this is as follows (but most terminals use this set of escape codes).
ESC='\033' RED="${ESC}[31m" GREEN="${ESC}[32m" RESET="${ESC}[0m" echo "\ ${RED}red\ ${GREEN}green\ ${RESET}reset"