Colored shell script output library Colored shell script output library shell shell

Colored shell script output library


Here is an modified snippet from my dotfiles that should do what you want

RCol='\e[0m'    # Text Reset# Regular           Bold                Underline           High Intensity      BoldHigh Intens     Background          High Intensity BackgroundsBla='\e[0;30m';     BBla='\e[1;30m';    UBla='\e[4;30m';    IBla='\e[0;90m';    BIBla='\e[1;90m';   On_Bla='\e[40m';    On_IBla='\e[0;100m';Red='\e[0;31m';     BRed='\e[1;31m';    URed='\e[4;31m';    IRed='\e[0;91m';    BIRed='\e[1;91m';   On_Red='\e[41m';    On_IRed='\e[0;101m';Gre='\e[0;32m';     BGre='\e[1;32m';    UGre='\e[4;32m';    IGre='\e[0;92m';    BIGre='\e[1;92m';   On_Gre='\e[42m';    On_IGre='\e[0;102m';Yel='\e[0;33m';     BYel='\e[1;33m';    UYel='\e[4;33m';    IYel='\e[0;93m';    BIYel='\e[1;93m';   On_Yel='\e[43m';    On_IYel='\e[0;103m';Blu='\e[0;34m';     BBlu='\e[1;34m';    UBlu='\e[4;34m';    IBlu='\e[0;94m';    BIBlu='\e[1;94m';   On_Blu='\e[44m';    On_IBlu='\e[0;104m';Pur='\e[0;35m';     BPur='\e[1;35m';    UPur='\e[4;35m';    IPur='\e[0;95m';    BIPur='\e[1;95m';   On_Pur='\e[45m';    On_IPur='\e[0;105m';Cya='\e[0;36m';     BCya='\e[1;36m';    UCya='\e[4;36m';    ICya='\e[0;96m';    BICya='\e[1;96m';   On_Cya='\e[46m';    On_ICya='\e[0;106m';Whi='\e[0;37m';     BWhi='\e[1;37m';    UWhi='\e[4;37m';    IWhi='\e[0;97m';    BIWhi='\e[1;97m';   On_Whi='\e[47m';    On_IWhi='\e[0;107m';

Then you can just echo -e "${Blu}blue ${Red}red ${RCol}etc...."


echo -e "\033[33;31m Color Text" - red

echo -e "\033[33;32m Color Text" - green

echo -e "\033[33;33m Color Text" - yellow

echo -e "\033[33;34m Color Text" - blue

echo -e "\033[33;35m Color Text" - Magenta

echo -e "\033[33;30m Color Text" - Gray

echo -e "\033[33;36m Color Text" - Cyan

http://techietent.blogspot.in/2013/03/how-to-echo-colored-text-in-linux-shell.html


I took demure's list as inspiration and did a little DRYing out of it. (And changed \e to the hexadecimal \x1B, since the former isn't supported in OS X's Terminal.app since Snow Leopard.) Here's what I came up with:

## Colours and font styles## Syntax: echo -e "${FOREGROUND_COLOUR}${BACKGROUND_COLOUR}${STYLE}Hello world!${RESET_ALL}"# Escape sequence and resetsESC_SEQ="\x1b["RESET_ALL="${ESC_SEQ}0m"RESET_BOLD="${ESC_SEQ}21m"RESET_UL="${ESC_SEQ}24m"# Foreground coloursFG_BLACK="${ESC_SEQ}30;"FG_RED="${ESC_SEQ}31;"FG_GREEN="${ESC_SEQ}32;"FG_YELLOW="${ESC_SEQ}33;"FG_BLUE="${ESC_SEQ}34;"FG_MAGENTA="${ESC_SEQ}35;"FG_CYAN="${ESC_SEQ}36;"FG_WHITE="${ESC_SEQ}37;"FG_BR_BLACK="${ESC_SEQ}90;"FG_BR_RED="${ESC_SEQ}91;"FG_BR_GREEN="${ESC_SEQ}92;"FG_BR_YELLOW="${ESC_SEQ}93;"FG_BR_BLUE="${ESC_SEQ}94;"FG_BR_MAGENTA="${ESC_SEQ}95;"FG_BR_CYAN="${ESC_SEQ}96;"FG_BR_WHITE="${ESC_SEQ}97;"# Background colours (optional)BG_BLACK="40;"BG_RED="41;"BG_GREEN="42;"BG_YELLOW="43;"BG_BLUE="44;"BG_MAGENTA="45;"BG_CYAN="46;"BG_WHITE="47;"# Font stylesFS_REG="0m"FS_BOLD="1m"FS_UL="4m"

The BR_ colours are the "bright" or "high-intensity" colours. Done this way, you can even mix them with other font styles. (e.g. underlined bright white)

If you want to bookmark this, I made a gist for it: https://gist.github.com/ian128K/39a490e5aa8d3bb77a8b