Bash ansi escape codes: Difference between revisions

From wikinotes
 
Line 7: Line 7:
See list of colours https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
See list of colours https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
<source lang="bash">
<source lang="bash">
echo -e '\e[32m'    #  
echo -e '\e[32m'    #
echo -e '\e[m'      # reset colour
echo -e '\e[m'      # reset colour


Line 18: Line 18:
echo "${yellow}foo"
echo "${yellow}foo"
</source>
</source>
I usually do something like this for help text
<syntaxhighlight lang="bash">
setup_colours() {
    if [ $(tput colors) -gt 8 ] ; then
        C=$(tput setaf 6)  # code
        H=$(tput setaf 3)  # heading
        E=$(tput setaf 1)  # error
        B=$(tput bold)    # bold
        R=$(tput sgr0)    # reset
    else
        C=$(tput sgr0)
        H=$(tput sgr0)
        E=$(tput sgr0)
        B=$(tput sgr0)
        R=$(tput sgr0)
    fi
}
</syntaxhighlight>
</blockquote><!-- Colours -->
</blockquote><!-- Colours -->

Revision as of 16:22, 25 December 2021

Terminals are controled ansi escape sequences.
These sequences vary from terminal to terminal.
The tput command uses your terminal's termcap library to expose a common interface.

Colours

See list of colours https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit

echo -e '\e[32m'     #
echo -e '\e[m'       # reset colour

tput setab 7 # set bg colour
tput setaf 7 # set fg colour
tput bold    # set bold
tput sgr0    # reset colours

yellow=$(tput setaf 3)
echo "${yellow}foo"

I usually do something like this for help text

setup_colours() {
    if [ $(tput colors) -gt 8 ] ; then
        C=$(tput setaf 6)  # code
        H=$(tput setaf 3)  # heading
        E=$(tput setaf 1)  # error
        B=$(tput bold)     # bold
        R=$(tput sgr0)     # reset
    else
        C=$(tput sgr0)
        H=$(tput sgr0)
        E=$(tput sgr0)
        B=$(tput sgr0)
        R=$(tput sgr0)
    fi
}