Frage Wie ändert man die Ausgabefarbe des Echos in Linux?


Ich versuche, einen Text im Terminal mit echo-Befehl zu drucken.

Ich möchte den Text in roter Farbe drucken. Wie kann ich das machen?


1145
2018-05-10 09:07


Ursprung


Antworten:


Sie können diese verwenden 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

Und dann verwende sie so in deinem Skript:

#    .---------- 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"

welches druckt love in rot.

Von @ james-lims Kommentar, wenn Sie die echo Verwenden Sie das Flag -e, um Backslash-Escapes zuzulassen.

# Continued from above example
echo -e "I ${RED}love${NC} Stack Overflow"

(füge nicht hinzu "\n" Wenn Sie Echo verwenden, außer Sie möchten eine zusätzliche leere Zeile hinzufügen)


1563
2018-05-10 09:11



Du kannst das geniale benutzen tput Befehl (vorgeschlagen in Ignacios Antwort) Terminalsteuercodes für alle Arten von Dingen zu erzeugen.


Verwendung

Spezifisch tput Unterbefehle werden später besprochen.

Direkte

Anruf tput als Teil einer Befehlsfolge:

tput setaf 1; echo "this is red text"

Benutzen ; Anstatt von && also wenn tput Fehler der Text immer noch angezeigt wird.

Shell-Variablen

Eine weitere Option ist die Verwendung von Shell-Variablen:

red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
echo "${red}red text ${green}green text${reset}"

tput erzeugt Zeichenfolgen, die vom Terminal als eine besondere Bedeutung interpretiert werden. Sie werden nicht selbst gezeigt. Beachten Sie, dass sie weiterhin in Dateien gespeichert oder von anderen Programmen als dem Terminal verarbeitet werden können.

Befehlsersetzung

Es kann bequemer sein, einzufügen tputDie Ausgabe direkt in Ihre echo Zeichenfolgen mit Befehlsersetzung:

echo "$(tput setaf 1)Red text $(tput setab 7)and white background$(tput sgr 0)"

Beispiel

Der obige Befehl erzeugt dies unter Ubuntu:

Screenshot of colour terminal text


Vordergrund- und Hintergrundfarbbefehle

tput setab [1-7] # Set the background colour using ANSI escape
tput setaf [1-7] # Set the foreground colour using ANSI escape

Farben sind wie folgt:

Num  Colour    #define         R G B

0    black     COLOR_BLACK     0,0,0
1    red       COLOR_RED       1,0,0
2    green     COLOR_GREEN     0,1,0
3    yellow    COLOR_YELLOW    1,1,0
4    blue      COLOR_BLUE      0,0,1
5    magenta   COLOR_MAGENTA   1,0,1
6    cyan      COLOR_CYAN      0,1,1
7    white     COLOR_WHITE     1,1,1

Es gibt auch Nicht-ANSI-Versionen der Farbeinstellungsfunktionen (setb Anstatt von setab, und setf Anstatt von setaf) die verschiedene Zahlen verwenden, die hier nicht angegeben sind.

Textmodusbefehle

tput bold    # Select bold mode
tput dim     # Select dim (half-bright) mode
tput smul    # Enable underline mode
tput rmul    # Disable underline mode
tput rev     # Turn on reverse video mode
tput smso    # Enter standout (bold) mode
tput rmso    # Exit standout mode

Cursorbewegungsbefehle

tput cup Y X # Move cursor to screen postion X,Y (top left is 0,0)
tput cuf N   # Move N characters forward (right)
tput cub N   # Move N characters back (left)
tput cuu N   # Move N lines up
tput ll      # Move to last line, first column (if no cup)
tput sc      # Save the cursor position
tput rc      # Restore the cursor position
tput lines   # Output the number of lines of the terminal
tput cols    # Output the number of columns of the terminal

Löschen und Einfügen von Befehlen

tput ech N   # Erase N characters
tput clear   # Clear screen and move the cursor to 0,0
tput el 1    # Clear to beginning of line
tput el      # Clear to end of line
tput ed      # Clear to end of screen
tput ich N   # Insert N characters (moves rest of line forward!)
tput il N    # Insert N lines

Andere Befehle

tput sgr0    # Reset text format to the terminal's default
tput bel     # Play a bell

Mit compiz wackelige Fenster, das bel Befehl macht das Terminal für eine Sekunde wobbeln, um die Aufmerksamkeit des Benutzers zu lenken.


Skripte

tput akzeptiert Skripte mit einem Befehl pro Zeile, die in der Reihenfolge zuvor ausgeführt werden tput beendet.

Vermeiden Sie temporäre Dateien, indem Sie einen mehrzeiligen String wiederholen und ihn damit verbinden:

echo -e "setf 7\nsetb 1" | tput -S  # set fg white and bg red

Siehe auch

  • Sehen man 1 tput
  • Sehen man 5 terminfo für die vollständige Liste der Befehle und weitere Details zu diesen Optionen. (Die entsprechende tput Befehl ist in der Liste aufgeführt Cap-name Spalte der riesigen Tabelle, die bei Zeile 81 beginnt.)

646
2018-01-07 22:25



einige Variablen, die Sie verwenden können:

# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White

# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White

# Background
On_Black='\033[40m'       # Black
On_Red='\033[41m'         # Red
On_Green='\033[42m'       # Green
On_Yellow='\033[43m'      # Yellow
On_Blue='\033[44m'        # Blue
On_Purple='\033[45m'      # Purple
On_Cyan='\033[46m'        # Cyan
On_White='\033[47m'       # White

# High Intensity
IBlack='\033[0;90m'       # Black
IRed='\033[0;91m'         # Red
IGreen='\033[0;92m'       # Green
IYellow='\033[0;93m'      # Yellow
IBlue='\033[0;94m'        # Blue
IPurple='\033[0;95m'      # Purple
ICyan='\033[0;96m'        # Cyan
IWhite='\033[0;97m'       # White

# Bold High Intensity
BIBlack='\033[1;90m'      # Black
BIRed='\033[1;91m'        # Red
BIGreen='\033[1;92m'      # Green
BIYellow='\033[1;93m'     # Yellow
BIBlue='\033[1;94m'       # Blue
BIPurple='\033[1;95m'     # Purple
BICyan='\033[1;96m'       # Cyan
BIWhite='\033[1;97m'      # White

# High Intensity backgrounds
On_IBlack='\033[0;100m'   # Black
On_IRed='\033[0;101m'     # Red
On_IGreen='\033[0;102m'   # Green
On_IYellow='\033[0;103m'  # Yellow
On_IBlue='\033[0;104m'    # Blue
On_IPurple='\033[0;105m'  # Purple
On_ICyan='\033[0;106m'    # Cyan
On_IWhite='\033[0;107m'   # White

 

das Escapezeichen in bash, verhexen und Oktal beziehungsweise:

|       | bash  | hex    | octal   | NOTE                         |
|-------+-------+--------+---------+------------------------------|
| start | \e    | \x1b   | \033    |                              |
| start | \E    | \x1B   | -       | x cannot be capital          |
| end   | \e[0m | \x1m0m | \033[0m |                              |
| end   | \e[m  | \x1b[m | \033[m  | 0 is appended if you omit it |
|       |       |        |         |                              |

kurzes Beispiel:

| color       | bash         | hex            | octal          | NOTE                                  |
|-------------+--------------+----------------+----------------+---------------------------------------|
| start green | \e[32m<text> | \x1b[32m<text> | \033[32m<text> | m is NOT optional                     |
| reset       | <text>\e[0m  | <text>\1xb[0m  | <text>\033[om  | o is optional (do it as best practice |
|             |              |                |                |                                       |

Bash-Ausnahme:

Wenn Sie diese Codes in Ihrem verwenden werden spezielle Bash-Variablen 

  • PS0
  • PS1
  • PS2 (= dies ist zur Aufforderung)
  • PS4

Sie sollten zusätzliche Escape-Zeichen hinzufügen, so dass  kann sie richtig interpretieren. Ohne dieses Hinzufügen zusätzlicher Escape-Zeichen funktioniert es, aber Sie werden Probleme haben, wenn Sie verwenden Ctrl + r für die Suche in Ihrer Geschichte.

Ausnahmeregel für bash

Sie sollten hinzufügen \[ vor dem Starten von ANSI-Code und Hinzufügen \] nach irgendwelchen endenden.
Beispiel:
im regelmäßigen Gebrauch: \033[32mThis is in green\033[0m
für PS0 / 1/2/4: \[\033[32m\]This is in green\[\033[m\] 

\[ ist für den Anfang einer Sequenz von nicht druckbar Figuren
\] ist für das Ende einer Sequenz von nicht druckbar Figuren

Tipp: Zum Auswendiglernen können Sie zuerst hinzufügen \[\] und dann setzen Sie Ihren ANSI-Code zwischen ihnen:
  - \[start-ANSI-code\]
  - \[end-ANSI-code\] 

Art der Farbsequenz:

  1. 3/4 Bit
  2. 8 Bit
  3. 24 Bit

Bevor Sie in diese Farben tauchen, sollten Sie ungefähr 4 Modi mit diesen Codes kennen:

1. Farbmodus

Es ändert den Stil der Farbe NICHT Text. Zum Beispiel die Farbe hell oder dunkler machen.

  • 0  zurücksetzen
  • 1;  leichter als normal
  • 2; dunkler als normal

Dieser Modus wird nicht umfassend unterstützt. Es wird vollständig auf Gnome-Terminal unterstützt.

2. Textmodus

Dieser Modus dient zum Ändern des Textstils NOT-Farbe.

  • 3; kursiv
  • 4; unterstreichen
  • 5; blinkend (langsam)
  • 6; blinkend (schnell)
  • 7; umkehren
  • 8; verbergen
  • 9; durchgestrichen

und werden fast unterstützt.
Zum Beispiel unterstützt KDE-Konsole 5; aber Gnome-Terminal nicht und Gnome unterstützt 8; aber KDE nicht.

3. Vordergrundmodus

Dieser Modus dient zum Einfärben des Vordergrunds.

4. Hintergrundmodus

Dieser Modus dient zum Einfärben des Hintergrunds.

 

Die folgende Tabelle zeigt eine Zusammenfassung von 3/4 Bit Version von ANSI-Farbe

|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| color-mode | octal    | hex     | bash  | description      | example (= in octal)         | NOTE                                 |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|          0 | \033[0m  | \x1b[0m | \e[0m | reset any affect | echo -e "\033[0m"            | 0m equals to m                       |
|          1 | \033[1m  |         |       | light (= bright) | echo -e "\033[1m####\033[m"  | -                                    |
|          2 | \033[2m  |         |       | dark (= fade)    | echo -e "\033[2m####\033[m"  | -                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|  text-mode | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|          3 | \033[3m  |         |       | italic           | echo -e "\033[3m####\033[m"  |                                      |
|          4 | \033[4m  |         |       | underline        | echo -e "\033[4m####\033[m"  |                                      |
|          5 | \033[5m  |         |       | blink (slow)     | echo -e "\033[3m####\033[m"  |                                      |
|          6 | \033[6m  |         |       | blink (fast)     | ?                            | not wildly support                   |
|          7 | \003[7m  |         |       | reverse          | echo -e "\033[7m####\033[m"  | it affects the background/foreground |
|          8 | \033[8m  |         |       | hide             | echo -e "\033[8m####\033[m"  | it affects the background/foreground |
|          9 | \033[9m  |         |       | cross            | echo -e "\033[9m####\033[m"  |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| foreground | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         30 | \033[30m |         |       | black            | echo -e "\033[30m####\033[m" |                                      |
|         31 | \033[31m |         |       | red              | echo -e "\033[31m####\033[m" |                                      |
|         32 | \033[32m |         |       | green            | echo -e "\033[32m####\033[m" |                                      |
|         33 | \033[32m |         |       | yellow           | echo -e "\033[33m####\033[m" |                                      |
|         34 | \033[32m |         |       | blue             | echo -e "\033[34m####\033[m" |                                      |
|         35 | \033[32m |         |       | purple           | echo -e "\033[35m####\033[m" | real name: magenta = reddish-purple  |
|         36 | \033[32m |         |       | cyan             | echo -e "\033[36m####\033[m" |                                      |
|         37 | \033[32m |         |       | white            | echo -e "\033[37m####\033[m" |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         38 | 8/24     |                    This is for special use of 8-bit or 24-bit                                            |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| background | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         40 | \033[40m |         |       | black            | echo -e "\033[40m####\033[m" |                                      |
|         41 | \033[41m |         |       | red              | echo -e "\033[41m####\033[m" |                                      |
|         42 | \033[42m |         |       | green            | echo -e "\033[42m####\033[m" |                                      |
|         43 | \033[43m |         |       | yellow           | echo -e "\033[43m####\033[m" |                                      |
|         44 | \033[44m |         |       | blue             | echo -e "\033[44m####\033[m" |                                      |
|         45 | \033[45m |         |       | purple           | echo -e "\033[45m####\033[m" | real name: magenta = reddish-purple  |
|         46 | \033[46m |         |       | cyan             | echo -e "\033[46m####\033[m" |                                      |
|         47 | \033[47m |         |       | white            | echo -e "\033[47m####\033[m" |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         48 | 8/24     |                    This is for special use of 8-bit or 24-bit                                            |                                                                                       |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|

 

Die folgende Tabelle zeigt eine Zusammenfassung von 8 Bit Version von ANSI-Farbe

|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
| foreground | octal     | hex       | bash    | description      | example                            | NOTE                    |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
|        0-7 | \033[38;5 | \x1b[38;5 | \e[38;5 | standard. normal | echo -e '\033[38;5;1m####\033[m'   |                         |
|       8-15 |           |           |         | standard. light  | echo -e '\033[38;5;9m####\033[m'   |                         |
|     16-231 |           |           |         | more resolution  | echo -e '\033[38;5;45m####\033[m'  | has no specific pattern |
|    232-255 |           |           |         |                  | echo -e '\033[38;5;242m####\033[m' | from black to white     |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
| foreground | octal     | hex       | bash    | description      | example                            | NOTE                    |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
|        0-7 |           |           |         | standard. normal | echo -e '\033[48;5;1m####\033[m'   |                         |
|       8-15 |           |           |         | standard. light  | echo -e '\033[48;5;9m####\033[m'   |                         |
|     16-231 |           |           |         | more resolution  | echo -e '\033[48;5;45m####\033[m'  |                         |
|    232-255 |           |           |         |                  | echo -e '\033[48;5;242m####\033[m' | from black to white     |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|

Der 8-Bit-Schnelltest:
for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done 

 

Die folgende Tabelle zeigt eine Zusammenfassung von 24 Bit Version von ANSI-Farbe

|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
| foreground | octal     | hex       | bash    | description | example                                  | NOTE            |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | R = red     | echo -e '\033[38;2;255;0;02m####\033[m'  | R=255, G=0, B=0 |
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | G = green   | echo -e '\033[38;2;;0;255;02m####\033[m' | R=0, G=255, B=0 |
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | B = blue    | echo -e '\033[38;2;0;0;2552m####\033[m'  | R=0, G=0, B=255 |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
| background | octal     | hex       | bash    | description | example                                  | NOTE            |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | R = red     | echo -e '\033[48;2;255;0;02m####\033[m'  | R=255, G=0, B=0 |
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | G = green   | echo -e '\033[48;2;;0;255;02m####\033[m' | R=0, G=255, B=0 |
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | B = blue    | echo -e '\033[48;2;0;0;2552m####\033[m'  | R=0, G=0, B=255 |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|

 

einige Screenshots

Vordergrund-8-Bit-Zusammenfassung in a .gif 

foreground.gif

Hintergrund 8-Bit-Zusammenfassung in a .gif 

background.gif

Farbzusammenfassung mit ihren Werten

enter image description here enter image description here enter image description here enter image description here

blinking auf KDE-Terminal

KDE-blinking

 eine einfache C Code, der Ihnen mehr zeigt

cecho_screenshot

 ein fortgeschrittenes Werkzeug, das ich entwickelt habe, um mit diesen Farben umzugehen:
bline 


Farbmodus-Aufnahme

fade-normal-bright

Textmodus gedreht

only-text-mode

Kombinieren ist in Ordnung

combine

mehr Schüsse


Tipps und Tricks für fortgeschrittene Benutzer und Programmierer:

Können wir diese Codes in einer Programmiersprache verwenden?

Ja, du kannst. Ich erlebte in , , ,   ,

Verlangsamen sie die Geschwindigkeit eines Programms?

Ich denke nicht.

Können wir diese unter Windows verwenden?

3/4-Bit Ja, wenn Sie den Code mit übersetzen gcc
einige Screenshots auf Win-7 

Wie berechnet man die Länge des Codes?

\033[ = 2, andere Teile 1

Wo können wir diese Codes verwenden?

Überall, wo ein tty Dolmetscher
xterm, gnome-terminal, kde-terminal, mysql-client-CLI und so weiter.
Zum Beispiel, wenn Sie Ihre Ausgabe mit mysql colorieren möchten, können Sie verwenden Perl 

#!/usr/bin/perl -n
print "\033[1m\033[31m$1\033[36m$2\033[32m$3\033[33m$4\033[m" while /([|+-]+)|([0-9]+)|([a-zA-Z_]+)|([^\w])/g;

Speichere diesen Code in einem Dateinamen: pcc (= Perl Colorize Character) und lege dann die Datei in valide PATH dann benutze es überall wo du willst.

ls | pcc
df | pcc 

Innerhalb mysql Registrieren Sie es zuerst für pager und dann versuche:

[user2:db2] pager pcc
PAGER set to 'pcc'
[user2:db2] select * from table-name;

pcc

Es tut NICHT handle Unicode.

Kodieren diese Codes nur?

Nein, sie können viele interessante Dinge tun. Versuchen:

echo -e '\033[2K'  # clear the screen and do not move the position

oder:

echo -e '\033[2J\033[u' # clear the screen and reset the position

Es gibt viele Anfänger, die den Bildschirm mit löschen möchten system( "clear" ) also kannst du das anstelle von verwenden system(3) Anruf

Sind sie in Unicode verfügbar?

Ja. \u001b 

Welche Version dieser Farben ist vorzuziehen?

Es ist einfach zu bedienen 3/4-bit, aber es ist sehr genau und schön zu verwenden 24-bit.
Wenn Sie keine Erfahrung mit haben  Also hier ist ein kurzes Tutorial:
24 Bits bedeuten: 00000000 und 00000000 und 00000000. Jedes 8-Bit ist für eine bestimmte Farbe.
24..17 ist für  und 16..9 zum  und 8..1 zum
Also rein   #FF0000 meint  und hier ist es: 255;0;0
im   #00FF00 meint  was hier ist: 0;255;0
Ist das sinnvoll? Welche Farbe möchten Sie mit diesen drei 8-Bit-Werten kombinieren.


Referenz:
Wikipedia
ANSI-Escape-Sequenzen
tldp.org
tldp.org
misc.flogisoft.com
einige Blogs / Webseiten, an die ich mich nicht erinnern kann

Abzeichen:


463
2018-03-09 09:02



Benutzen tput mit dem setaf Fähigkeit und ein Parameter von 1.

echo "$(tput setaf 1)Hello, world$(tput sgr0)"

158
2018-05-10 09:10



echo -e "\033[31m Hello World"

Das [31m Steuert die Textfarbe:

  • 30-37 Sätze Vordergrund Farbe
  • 40-47 Sätze Hintergrund Farbe

Eine vollständigere Liste von Farbcodes kann hier gefunden werden.

Es empfiehlt sich, die Textfarbe zurück auf zu setzen \033[0m am Ende der Zeichenfolge.


96
2018-05-10 09:10



Dies ist das Farbschalter  \033[. Sehen Geschichte.

Farbe Codes sind wie 1;32 (Hellgrün), 0;34 (Blau), 1;34 (Hellblau) usw.

Wir beenden Farbsequenzen mit einem Farbschalter \033[ und 0m, das Nein-Farbcode. Genauso wie das Öffnen und Schließen von Tabs in einer Auszeichnungssprache.

  SWITCH="\033["
  NORMAL="${SWITCH}0m"
  YELLOW="${SWITCH}1;33m"
  echo "${YELLOW}hello, yellow${NORMAL}"

Einfache Farbe echo Funktionslösung:

cecho() {
  local code="\033["
  case "$1" in
    black  | bk) color="${code}0;30m";;
    red    |  r) color="${code}1;31m";;
    green  |  g) color="${code}1;32m";;
    yellow |  y) color="${code}1;33m";;
    blue   |  b) color="${code}1;34m";;
    purple |  p) color="${code}1;35m";;
    cyan   |  c) color="${code}1;36m";;
    gray   | gr) color="${code}0;37m";;
    *) local text="$1"
  esac
  [ -z "$text" ] && local text="$color$2${code}0m"
  echo "$text"
}

cecho "Normal"
cecho y "Yellow!"

29
2018-02-25 01:38



Eine nette Art, Farbe nur für einen zu ändern echo ist eine solche Funktion zu definieren:

function coloredEcho(){
    local exp=$1;
    local color=$2;
    if ! [[ $color =~ '^[0-9]$' ]] ; then
       case $(echo $color | tr '[:upper:]' '[:lower:]') in
        black) color=0 ;;
        red) color=1 ;;
        green) color=2 ;;
        yellow) color=3 ;;
        blue) color=4 ;;
        magenta) color=5 ;;
        cyan) color=6 ;;
        white|*) color=7 ;; # white or invalid color
       esac
    fi
    tput setaf $color;
    echo $exp;
    tput sgr0;
}

Verwendung:

coloredEcho "This text is green" green

Oder Sie können direkt die Farbcodes verwenden, die in Drews Antwort:

coloredEcho "This text is green" 2

25
2018-04-11 07:36