How to print in bash with color? There are two easy ways. One is for easy print sentences. The other one is more suitable for printing blocks of lines of logs.
Printf With Color
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
c_echo() { RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' Cyan='\033[0;36m' NC='\033[0m'# No Color
# Regular Colors Black="\[\033[0;30m\]"# Black Red="\[\033[0;31m\]"# Red Green="\[\033[0;32m\]"# Green Yellow="\[\033[0;33m\]"# Yellow Blue="\[\033[0;34m\]"# Blue Purple="\[\033[0;35m\]"# Purple Cyan="\[\033[0;36m\]"# Cyan White="\[\033[0;37m\]"# White
# Bold BBlack="\[\033[1;30m\]"# Black BRed="\[\033[1;31m\]"# Red BGreen="\[\033[1;32m\]"# Green BYellow="\[\033[1;33m\]"# Yellow BBlue="\[\033[1;34m\]"# Blue BPurple="\[\033[1;35m\]"# Purple BCyan="\[\033[1;36m\]"# Cyan BWhite="\[\033[1;37m\]"# White
# Underline UBlack="\[\033[4;30m\]"# Black URed="\[\033[4;31m\]"# Red UGreen="\[\033[4;32m\]"# Green UYellow="\[\033[4;33m\]"# Yellow UBlue="\[\033[4;34m\]"# Blue UPurple="\[\033[4;35m\]"# Purple UCyan="\[\033[4;36m\]"# Cyan UWhite="\[\033[4;37m\]"# White
# Background On_Black="\[\033[40m\]"# Black On_Red="\[\033[41m\]"# Red On_Green="\[\033[42m\]"# Green On_Yellow="\[\033[43m\]"# Yellow On_Blue="\[\033[44m\]"# Blue On_Purple="\[\033[45m\]"# Purple On_Cyan="\[\033[46m\]"# Cyan On_White="\[\033[47m\]"# White
# High Intensty IBlack="\[\033[0;90m\]"# Black IRed="\[\033[0;91m\]"# Red IGreen="\[\033[0;92m\]"# Green IYellow="\[\033[0;93m\]"# Yellow IBlue="\[\033[0;94m\]"# Blue IPurple="\[\033[0;95m\]"# Purple ICyan="\[\033[0;96m\]"# Cyan IWhite="\[\033[0;97m\]"# White
# Bold High Intensty BIBlack="\[\033[1;90m\]"# Black BIRed="\[\033[1;91m\]"# Red BIGreen="\[\033[1;92m\]"# Green BIYellow="\[\033[1;93m\]"# Yellow BIBlue="\[\033[1;94m\]"# Blue BIPurple="\[\033[1;95m\]"# Purple BICyan="\[\033[1;96m\]"# Cyan BIWhite="\[\033[1;97m\]"# White
# High Intensty backgrounds On_IBlack="\[\033[0;100m\]"# Black On_IRed="\[\033[0;101m\]"# Red On_IGreen="\[\033[0;102m\]"# Green On_IYellow="\[\033[0;103m\]"# Yellow On_IBlue="\[\033[0;104m\]"# Blue On_IPurple="\[\033[10;95m\]"# Purple On_ICyan="\[\033[0;106m\]"# Cyan On_IWhite="\[\033[0;107m\]"# White
Tput With Color
tput can be used to setup the color status. For example, tput setaf 1 is red, and the following code:
1 2 3 4 5
tput setaf 1 #set terminal color to red echo"this prints in red" echo"another red" git status #everything prints in red here tput sgr0 #set terminal color to default
If you don’t do tput sgr0 then it will never set terminal color back to default.
Foreground vs Background
Use tput setaf [1-7] for foreground color. Use tput setab [1-7] for background color.
Colors
black
red
green
yellow
blue
magneta
cyan
white
Text Modes
1 2 3 4 5 6 7
tput bold # Select bold mode tput dim # Select dim (half-bright) mode tput smul # Enable underline mode tput rmul # Disable underline mode tput rev # Turn on reverse video mode tput smso # Enter standout (bold) mode tput rmso # Exit standout mode