How to change the output color of echo in Linux

bash, command-line, echo, linux, terminal-color

Solution

You can use these ANSI escape codes:

Black        0;30     Dark Gray     1;30
Red          0;31     Light Red     1;31
Green        0;32     Light Green   1;32
Brown/Orange 0;33     Yellow        1;33
Blue         0;34     Light Blue    1;34
Purple       0;35     Light Purple  1;35
Cyan         0;36     Light Cyan    1;36
Light Gray   0;37     White         1;37

And then use them like this in your script:

#    .---------- constant part!
#    vvvv vvvv-- the code from above
RED='\033[0;31m'
NC='\033[0m' # No Color
printf "I ${RED}love${NC} Stack Overflow\n"

which prints `love` in red.

From @james-lim's comment, if you are using the `echo` command, be sure to use the `-e` flag to allow backslash escapes.

#    .---------- constant part!
#    vvvv vvvv-- the code from above
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "I ${RED}love${NC} Stack Overflow"

Note: Don't add `"\n"` when using `echo` unless you want to add an additional empty line.

Problem

I am trying to print a text in the terminal using echo command. I want to print the text in a red color. How can I do that?

Original source

Related problems