Computer
Linux terminal colors
With this script you can see the colors on your Linux terminal and how to print it.
Usualy I put this script on my home (
~/) named as
colors.sh with access level
755.
#!/bin/sh
# v.1 2022-05-17
usage()
{
echo "Usage: $(basename $1) [OPTIONS]"
echo
echo "Options:"
echo " -f Foreground colors"
echo " -fg"
echo " --fg"
echo " --foreground"
echo " -d Show foreground dark contrast"
echo " --dark"
echo " -h Show foreground highlight contrast"
echo " -hl"
echo " --hl"
echo " --high"
echo " --highlight"
echo " -b Background colors"
echo " -bg"
echo " --bg"
echo " --background"
echo " -1 Show background in contrast"
echo " -c"
echo " -c1"
echo " --contrast"
echo " -2 Show background in dark contrast"
echo " -c2"
echo " --cd"
echo " --contrast-dark"
echo " -3 Show background in highlight contrast"
echo " -c3"
echo " --ch"
echo " --contrast-high"
echo " --contrast-highlight"
echo " -a Show with all options"
echo " --all"
echo
echo "Foreground contrast short options can be combined: -dh or -hd"
echo "Background contrast short options can be combined: -23 or -c32"
}
# print_color [Color] [Text] [Contrast]
print_color()
{
if [[ "$3" == "" ]]; then
printf "\033[${1}m %3d: ${2} \033[0m\n" $1
else
$show_dark && printf "\033[2;${1}m 2;%3d: ${2} \033[0m " $1
printf "\033[${1}m %3d: ${2} \033[0m " $1
$show_high && printf "\033[1;${1}m 1;%3d: ${2} \033[0m " $1
$show_contrast_dark && printf "\033[2;${3};${1}m 2;%3d: ${2} \033[0m " $1
$show_contrast && printf "\033[${3};${1}m %3d: ${2} \033[0m " $1
$show_contrast_high && printf "\033[1;${3};${1}m 1;%3d: ${2} \033[0m " $1
echo
fi
}
# print_number [Number] [Mode] [Contrast]
# Foreground Mode 38
# Background Mode 48
print_number()
{
if [[ "$3" == "" ]]; then
printf "\033[${2};05;${1}m %03d \033[0m" $1
else
printf "\033[${3};${2};05;${1}m %03d \033[0m" $1
fi
}
# print_number_group [Start] [End] [Mode] [Cotrast 1] [Contrast 2] [Contrast 3]
print_number_group()
{
group=`seq $1 $2`
for i in $group; do
print_number $i $3
done
echo
$show_contrast_dark && \
if [[ "$4" != "" ]]; then
for i in $group; do
print_number $i $3 $4
done
echo
fi
$show_contrast_high && \
if [[ "$5" != "" ]]; then
for i in $group; do
print_number $i $3 $5
done
echo
fi
$show_contrast && \
if [[ "$6" != "" ]]; then
for i in $group; do
print_number $i $3 $6
done
echo
fi
}
# print_number_group [Start] [End] [Line Break Count] [Color] [Cotrast 1] [Contrast 2] [Contrast 3]
print_number_group_nl()
{
group=`seq $1 $2`
for i in $group; do
if (( $i > $1 && `expr \( $i - $1 \) % $3` == 0 )); then
echo
fi
print_number $i $4
done
echo
$show_contrast_dark && \
if [[ "$5" != "" ]]; then
for i in $group; do
if (( $i > $1 && `expr \( $i - $1 \) % $3` == 0 )); then
echo
fi
print_number $i $4 $5
done
echo
fi
$show_contrast_high && \
if [[ "$6" != "" ]]; then
for i in $group; do
if (( $i > $1 && `expr \( $i - $1 \) % $3` == 0 )); then
echo
fi
print_number $i $4 $6
done
echo
fi
$show_contrast && \
if [[ "$7" != "" ]]; then
for i in $group; do
if (( $i > $1 && `expr \( $i - $1 \) % $3` == 0 )); then
echo
fi
print_number $i $4 $7
done
echo
fi
}
show_foreground=false
show_background=false
show_dark=false
show_high=false
show_contrast_dark=false
show_contrast=false
show_contrast_high=false
while [[ $# -gt 0 ]]; do
case $1 in
-f|-fg|--fg|--foreground)
show_foreground=true
shift
;;
-b|-bg|--bg|--background)
show_background=true
shift
;;
-d|--dark)
show_dark=true
shift
;;
-h|-hl|--hl|--high|--highlight)
show_high=true
shift
;;
-dh|-hd)
show_dark=true
show_high=true
shift
;;
-1|-c|-c1|--contrast)
show_contrast=true
shift
;;
-2|-c12|-c2|--cd|--contrast-dark)
show_contrast=true
show_contrast_dark=true
shift
;;
-3|-c13|-c3|--ch|--contrast-high|--contrast-highlight)
show_contrast=true
show_contrast_high=true
shift
;;
-23|-32|-123|-132|-213|-312|-231|-321|-c23|-c32|-c123|-c132|-c213|-c312|-c231|-c321)
show_contrast=true
show_contrast_dark=true
show_contrast_high=true
shift
;;
-a|--all)
show_foreground=true
show_background=true
show_dark=true
show_high=true
show_contrast_dark=true
show_contrast=true
show_contrast_high=true
shift
;;
--help)
usage $0
exit 0
;;
*)
echo "Unknown option $1"
exit 1
;;
esac
done
echo -e "\\\\e[\e[1;37m#\e[0mm"
echo
print_color 0 "Reset"
print_color 1 "Bold"
print_color 2 "Dark"
print_color 3 "Italic"
print_color 4 "Underline"
print_color 5 "Blink (slow)"
print_color 6 "Blick (fast)"
print_color 7 "Invert"
echo
print_color 24 "Remove Underline"
print_color 25 "Remove highlight background / blink / invert" # Need be more assertive
print_color 27 "Remove highlight background / blink / invert" # Need be more assertive
print_color 39 "Remove Foreground"
print_color 49 "Remove Background"
# Still missing other Removes
echo
print_color 30 "Foreground Black " 47
print_color 90 "Foreground Highlight Black " 47
print_color 37 "Foreground White " 47
print_color 97 "Foreground Highlight White " 47
print_color 31 "Foreground Red " 47
print_color 91 "Foreground Highlight Red " 47
print_color 32 "Foreground Green " 47
print_color 92 "Foreground Highlight Green " 47
print_color 33 "Foreground Yellow " 47
print_color 93 "Foreground Highlight Yellow" 47
print_color 34 "Foreground Blue " 47
print_color 94 "Foreground Highlight Blue " 47
print_color 35 "Foreground Purple " 47
print_color 95 "Foreground Highlight Purple" 47
print_color 36 "Foreground Cyan " 47
print_color 96 "Foreground Highlight Cyan " 47
echo
print_color 40 "Background Black " 30
print_color 100 "Background Highlight Black " 30
print_color 41 "Background Red " 30
print_color 101 "Background Highlight Red " 30
print_color 42 "Background Green " 30
print_color 102 "Background Highlight Green " 30
print_color 43 "Background Yellow " 30
print_color 103 "Background Highlight Yellow" 30
print_color 44 "Background Blue " 30
print_color 104 "Background Highlight Blue " 30
print_color 45 "Background Purple " 30
print_color 105 "Background Highlight Purple" 30
print_color 46 "Background Cyan " 30
print_color 106 "Background Highlight Cyan " 30
print_color 47 "Background White " 30
print_color 107 "Background Highlight White " 30
if [[ $show_foreground == "true" ]]; then
echo
echo -e "\\\\e[38;\e[1;37m2\e[0m;\e[1;31m255\e[0m;\e[1;32m255\e[0m;\e[1;34m255\e[0m2m"
echo
echo -e "\\\\e[38;05;\e[1;37m#\e[0mm"
echo
print_number_group 1 8 38 100 47 107
print_number_group 9 16 38 100 47 107
print_number_group 17 21 38 100 47 107
print_number_group_nl 22 231 36 38 100 47 107
print_number_group 232 255 38 100 47 107
fi
if [[ $show_background == "true" ]]; then
echo
echo -e "\\\\e[48;\e[1;37m2\e[0m;\e[1;31m255\e[0m;\e[1;32m255\e[0m;\e[1;34m255\e[0m2m"
echo
echo -e "\\\\e[48;05;\e[1;37m#\e[0mm"
echo
print_number_group 1 8 48 "" "" 30
print_number_group 9 16 48 "" "" 30
print_number_group 17 21 48 "" "" 30
print_number_group_nl 22 231 36 48 "" "" 30
print_number_group 232 255 48 "" "" 30
fi
USE IT AT YOUR OWN RISK!