Мой любимый ответ пока цветной Echo.
Просто, чтобы опубликовать другой вариант, вы можете проверить этот маленький инструмент xcol
https://ownyourbits.com/2017/01/23/colorize-your-stdout-with-xcol/
вы используете его точно так же, как grep, и он будет окрашивать свой stdin другим цветом для каждого аргумента, например
sudo netstat -putan | xcol httpd sshd dnsmasq pulseaudio conky tor Telegram firefox "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" ":[[:digit:]]+" "tcp." "udp." LISTEN ESTABLISHED TIME_WAIT
Обратите внимание, что он принимает любое регулярное выражение, которое будет принимать sed.
Этот инструмент использует следующие определения
#normal=$(tput sgr0) # normal text
normal=$'\e[0m' # (works better sometimes)
bold=$(tput bold) # make colors bold/bright
red="$bold$(tput setaf 1)" # bright red text
green=$(tput setaf 2) # dim green text
fawn=$(tput setaf 3); beige="$fawn" # dark yellow text
yellow="$bold$fawn" # bright yellow text
darkblue=$(tput setaf 4) # dim blue text
blue="$bold$darkblue" # bright blue text
purple=$(tput setaf 5); magenta="$purple" # magenta text
pink="$bold$purple" # bright magenta text
darkcyan=$(tput setaf 6) # dim cyan text
cyan="$bold$darkcyan" # bright cyan text
gray=$(tput setaf 7) # dim white text
darkgray="$bold"$(tput setaf 0) # bold black = dark gray text
white="$bold$gray" # bright white text
Я использую эти переменные в своих скриптах примерно так
echo "${red}hello ${yellow}this is ${green}coloured${normal}"