# Color script output (cross-platform)
# color-output.sh
In the opening section of a bash script, it's possible to define some variables that function as helpers to color or otherwise format the terminal output during the run of the script.
Different platforms use different character sequences to express color. However, there's a utility called tput
which works on all *nix systems and returns platform-specific terminal coloring strings via a consistent cross-platform API.
For example, to store the character sequence which turns the terminal text red or green:
echo "${green}Success!${reset}"
echo "${red}Failure.${reset}"
# Remarks
tput
queries the terminfo database for terminal-dependent information.
From tput on Wikipedia (opens new window):
In computing, tput
is a standard Unix operating system command which makes use of terminal capabilities.
Depending on the system, tput
uses the terminfo or termcap database, as well as looking into the environment for the terminal type.
from Bash Prompt HOWTO: Chapter 6. ANSI Escape Sequences: Colours and Cursor Movement (opens new window):
-
- Set a background colour using ANSI escape
- Set a background colour
- Set a foreground colour using ANSI escape
- Set a foreground colour
- Set bold mode
- Turn off all attributes (doesn't work quite as expected)
tput setb [1-7]
tput setaf [1-7]
tput setf [1-7]
tput bold
tput sgr0