ATTR_NONE=0 ATTR_BOLD=1 ATTR_UNDER=4 ATTR_BLINK=5 ATTR_REVERSE=7 ATTR_INVIS=8 # ANSI 6429 colors FG_BLACK=30 FG_RED=31 FG_GREEN=32 FG_YELLOW=33 FG_BLUE=34 FG_MAGENTA=35 FG_CYAN=36 FG_WHITE=37 BG_BLACK=40 BG_RED=41 BG_GREEN=42 BG_YELLOW=43 BG_BLUE=44 BG_MAGENTA=45 BG_CYAN=46 BG_WHITE=47 # set_attr # Sets display attributes # Parameters: [] # Creates a variable A_ set_attr() { local name fg bg attr name=$1 colors="\${FG_$2}\;\${BG_$3}" shift 3 for i in $@; do attr="${attr}\${ATTR_$i}\;" done eval A_${name}="[0\;${attr}${colors}m" return } # General sequence # Removes all attributes A_NONE="" # Clear screen cls() { echo "$1" return } .