Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Sådan ændres outputfarven på ekko i Linux

Introduktion

echo kommando udsender en given streng til standard udgangsrør, der typisk peger på terminalen. Selvom standardudgangsrøret kan pege på andre grænseflader - den echo kommando bruges typisk til at udskrive og vise meddelelser i terminalen. Som standard arver teksten i den viste besked farven fra anden tekst i terminalen (som kan tilpasses i sig selv). Men - der er flere måder, du kan ændre outputfarven på echo – både for individuelle strenge og for hele beskeder.

I denne korte guide tager vi et kig på, hvordan du kan ændre outputfarven på echo i Linux-baserede systemer, ved hjælp af ANSI escape-koder, tput og hvordan du kan gøre denne proces mindre omfattende i Bash-scripts.

Skift outputfarve med ANSI Escape-koder

Den nemmeste måde at ændre farven på er gennem ANSI escape-sekvenser/koder. Alle ANSI escape-koder starter med Escape karakter, som kan repræsenteres i forskellige formater – 27 i decimal, x1B i hexadecimal, som kontrolnøgle ^[ eller 33 i oktal format. Sekvenserne efterfølges derefter af kommandoen:

33[command

Hvor åbningsbeslaget (Kontrolsekvensintroducer) er valgfri, men hjælper med at adskille kommandoen fra escape-tegnet. Når du sætter en farvekode som kommandoen ændrer den farven på den modkørende tekst:

33[0;34

0;34 er koden for farven blå f.eks. Med dette alene kan du ændre farven på teksten i echo med:

33[0;34Text

Hvor Text ville være farvet blå. Alternativt kan du overveje et simpelt bash-script til at udskrive “Velkommen til Frankrig” i det franske flags farver:

#!/bin/bash  
BLUE='33[0;34m'
WHITE= '33[0;37m' 
RED= '33[0;31m'   
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"

Valgfrit -e flag af echo kommando giver dig mulighed for at bruge specialtegn som f.eks n (nylinje) og t (tab) inde i inputstrengen.

Når du har kørt scriptet:

$ ./colors.sh

Det resulterer i:

Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

ANSI-koderne er ikke begrænset til farve – men kan også anvendes til stil. Koderne 0..9 repræsentere tekststile, mens koderne 30...37 repræsentere farver:

Farve Koder Tekstformater Koder
Sort 30 Enkel tekst 0
Rød 31 Fed tekst 1
Grøn 32 Lav intensitet tekst 2
Brun / Orange 33 Understreg tekst 4
Blå 34 Blinkende tekst 5
Lilla 35 Usynlig tekst 8
Cyan 36 Gennemstreget tekst 9
Lysegrå 37

Lad os oprette et bash-script for at udforske nogle af disse muligheder:

#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"

Kørsel af dette script resulterer i:

Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Tjek vores praktiske, praktiske guide til at lære Git, med bedste praksis, brancheaccepterede standarder og inkluderet snydeark. Stop med at google Git-kommandoer og faktisk lærer det!

På samme måde kan du ændre baggrundsfarven på disse tekster ved hjælp af koder 40..47:

farve Koder
Sort 40
Rød 41
Grøn 42
Brun / Orange 43
Blå 44
Lilla 45
Cyan 46
Lysegrå 47

Ændring af baggrunden for en given streng koger ned til den samme regel som ved ændring af skriftfarve - koden i sig selv ændrer adfærden:

#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"

Bemærk: Som en tommelfingerregel – du kan oversætte skriftfarver til baggrundsfarver ved at tilføje 10. 30 er sort skriftfarve, 40 er sort baggrundsfarve.

Skift outputfarve med tput

Et alternativ til ANSI-koder er at bruge tput kommando:

$ tput setaf color_code

setf giver mulighed for 8 farver, mens setaf giver mulighed for 256 farver, så afhængigt af den kommando du bruger, kan du gå mellem 0..7 , 0..255 som farvekoderne. Både kommandoer dedikerer 0..7 til samme farvekoder, mens med setaf, 8..15 er højintensive farver, og 16..231 er forskellige nuancer af de første 8, og 232..255 er gråtonefarver:

Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
Credit: Wikipedia

Endelig tput giver dig også mulighed for at ændre baggrundsfarven, tilføje fed, sænke intensiteten osv. med andre kommandoer:

Tekstformater Kommandoer
Forgrundsfarve setaf
Baggrundsfarve sætab
Ingen stil sgv0
Fed tekst pin
Lav intensitet tekst Sun.
Understreg tekst smul
Blinkende tekst blinke
Omvendt tekst rev

Lad os oprette et andet script, der bruger tput for at ændre outputfarven echo:

#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"

Dette script vil udskrive følgende output i terminalen:

Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

tput-kommandoen giver en nem måde at udskrive enhver farve gennem en simpel farvekode. Lad os nu oprette et script, der kan udskrive alle tilgængelige farvekoder for tput-kommandoen:

#!/bin/bash
tput init 
 end = $ (($ (tput colors) - 1)) 
 w = 1 
 for c
  in $ (seq 0 $end) 
  do
eval "$(printf " tput setaf % 3 s " " $c ")" 
      echo - n "$_" 
      [[$c - ge $ ((w * 2))]] 
      offset = 2 || offset = 0 
      [[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]] 
      echo 
 done 
 tput init

Det vil udskrive 0 til 255 farver og deres koder:

Sådan ændres outputfarven på ekko i Linux PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Konklusion

I denne korte guide – vi har taget et kig på, hvordan du kan ændre farven på echo's output i Linux – ved hjælp af ANSI Escape Sequences og tput kommando.

Vi har også undersøgt, hvordan du kan gøre processen mindre omfattende ved at bruge Bash-variabler, justere baggrundsfarver og stiltekst.

Tidsstempel:

Mere fra Stablemisbrug