Skip to content

Instantly share code, notes, and snippets.

@demoive
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save demoive/f13e41757879a243b8a1 to your computer and use it in GitHub Desktop.
Save demoive/f13e41757879a243b8a1 to your computer and use it in GitHub Desktop.
Displays all the bash colors to the screen
### Bash colors and formatting
# To set the formatting/color, use the following:
# - escape character (\e, \033, \x1B)
# - open square bracket
# - attributes (semicolon-separated)
# - the letter m
#
# \033[<attribute>;...m
### FORMATTING (+20 resets the value)
# 0 Reset all formatting
# 1 Bold
# 2 Dimmed foreground
# 4 Underscore
# 5 Blink
# 7 Invert fg/bg colors
# 8 Hide text
### COLORS
# Dark | Bright
# Foreground: +30 | +90
# Background: +40 | +100
#
# 0 Black | Gray
# 1 Red
# 2 Green
# 3 Yellow
# 4 Blue
# 5 Purple
# 6 Cyan
# 7 Gray | White
# 9 Default | Not available
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
T='gYw' # The test text
echo -e "\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs \033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS \033[$FG\033[$BG $T \033[0m";
done
echo;
done
echo
#Another way:
local fgc bgc vals seq0
printf "Color escapes are %s\n" '\e[${value};...;${value}m'
printf "Values 30..37 are \e[33mforeground colors\e[m\n"
printf "Values 40..47 are \e[43mbackground colors\e[m\n"
printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n"
sample='bash'
# foreground colors
for fgc in {30..37}; do
# background colors
for bgc in {40..47}; do
fgc=${fgc#37} # white
bgc=${bgc#40} # black
vals="${fgc:+$fgc;}${bgc}"
vals=${vals%%;}
seq0="${vals:+\e[${vals}m}"
printf " %-9s" "${seq0:-(default)}"
printf " ${seq0}${sample}\e[m"
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
done
echo; echo
done
@demoive
Copy link
Author

demoive commented May 22, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment