Skip to content

Instantly share code, notes, and snippets.

@demoive
Last active August 29, 2015 14:01

Revisions

  1. demoive revised this gist May 29, 2014. 1 changed file with 35 additions and 2 deletions.
    37 changes: 35 additions & 2 deletions bash_colors.sh
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,45 @@
    #!/bin/bash
    ### 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

  2. demoive revised this gist May 29, 2014. 1 changed file with 33 additions and 0 deletions.
    33 changes: 33 additions & 0 deletions bash_colors.sh
    Original file line number Diff line number Diff line change
    @@ -24,3 +24,36 @@ for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
    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
  3. demoive created this gist May 22, 2014.
    26 changes: 26 additions & 0 deletions bash_colors.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    #!/bin/bash
    #
    # 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