Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Cum se schimbă culoarea de ieșire a Echo în Linux

Introducere

echo comanda trimite un șir dat către conductă de ieșire standard, arătând de obicei către terminal. Deși conducta de ieșire standard poate indica alte interfețe – cel echo comanda este de obicei folosită pentru a tipări și afișa mesaje în terminal. În mod implicit, textul mesajului afișat moștenește culoarea altui text din terminal (care este personalizabil în sine). Cu toate acestea, există mai multe moduri în care puteți modifica culoarea de ieșire echo – atât pentru șiruri individuale, cât și pentru mesaje întregi.

În acest scurt ghid, vom arunca o privire asupra modului în care puteți schimba culoarea de ieșire echo în sisteme bazate pe Linux, folosind coduri de evacuare ANSI, tput și cum puteți face acest proces mai puțin pronunțat în scripturile Bash.

Schimbați culoarea de ieșire cu codurile de evacuare ANSI

Cel mai simplu mod de a schimba culoarea este prin secvențele/codurile de evacuare ANSI. Toate codurile de evacuare ANSI încep cu Escape caracter, care poate fi reprezentat în diferite formate – 27 în zecimală, x1B în hexazecimal, ca tasta de control ^[, Sau 33 în format octal. Secvențele sunt apoi urmate de comanda:

33[command

Unde suportul de deschidere (Introducere a secvenței de control) este opțional, dar ajută la separarea comenzii de caracterul de evacuare. Când pui o Codul culorii ca și comandă, schimbă culoarea textului care se apropie:

33[0;34

0;34 este codul pentru culoarea albastru, de exemplu. Numai cu acest lucru, puteți schimba culoarea textului echo cu:

33[0;34Text

Unde Text ar fi colorat în albastru. Alternativ, luați în considerare un script bash simplu de imprimat "Bun venit în Franța" în culorile drapelului francez:

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

Opțional -e steag al echo comanda vă permite să utilizați caractere speciale precum n (linie nouă) și t (fila) în interiorul șirului de intrare.

Odată ce rulați scriptul:

$ ./colors.sh

Are ca rezultat:

Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Codurile ANSI nu se limitează la culoare, ci pot fi aplicate și pentru stil. Codurile 0..9 reprezintă stiluri de text, în timp ce codurile 30...37 reprezinta culorile:

Culori Coduri Stiluri de text Coduri
Negru 30 Text simplu 0
Roșu 31 Text îndrăzneț 1
Verde 32 Text cu intensitate redusă 2
Maro / Portocaliu 33 Subliniați textul 4
Albastru 34 Text care clipește 5
Violet 35 Text invizibil 8
Cyan 36 Text barat 9
Lumina gri 37

Să creăm un script bash pentru a explora unele dintre aceste opțiuni:

#!/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"

Rularea acestui script are ca rezultat:

Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Consultați ghidul nostru practic și practic pentru a învăța Git, cu cele mai bune practici, standarde acceptate de industrie și fisa de cheat incluse. Opriți căutarea pe Google a comenzilor Git și de fapt învăţa aceasta!

În mod similar, puteți schimba culoarea de fundal a acestor texte folosind coduri 40..47:

culoare Coduri
Negru 40
Roșu 41
Verde 42
Maro / Portocaliu 43
Albastru 44
Violet 45
Cyan 46
Lumina gri 47

Schimbarea fundalului unui șir dat se rezumă la aceeași regulă ca atunci când schimbați culoarea fontului - codul în sine schimbă comportamentul:

#!/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"

Notă: Ca regulă generală - puteți traduce culorile fontului în culorile de fundal adăugând 10. 30 este culoarea fontului negru, 40 este culoarea de fundal neagră.

Schimbați culoarea de ieșire cu tput

O alternativă la codurile ANSI este utilizarea tput comanda:

$ tput setaf color_code

setf permite 8 culori, în timp ce setaf permite 256 de culori, astfel încât, în funcție de comanda pe care o utilizați, puteți trece între ele 0..7 și 0..255 ca codurile de culoare. Ambele comenzile dedicate 0..7 la aceleași coduri de culoare, în timp ce cu setaf, 8..15 sunt culori de mare intensitate și 16..231 sunt nuanțe diferite ale primelor 8 și 232..255 sunt culori în tonuri de gri:

Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
Credit: Wikipedia

În cele din urmă, tput de asemenea, vă permite să schimbați culoarea de fundal, să adăugați bold, să reduceți intensitatea etc. cu alte comenzi:

Stiluri de text Comenzi
Culoarea primului plan setaf
Culoarea fundalului setab
Fără stil sgv0
Text îndrăzneț
Text de intensitate scăzută vag
Subliniați textul smul
Text care clipește clipi din ochi
Text invers rev

Să creăm un alt script care folosește tput pentru a schimba culoarea de ieșire 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!"

Acest script va imprima următoarea ieșire în terminal:

Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Comanda tput oferă o modalitate ușoară de a imprima orice culoare printr-un cod de culoare simplu. Să creăm acum un script care poate imprima fiecare cod de culoare disponibil pentru comanda tput:

#!/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

Va imprima de la 0 la 255 de culori și codurile acestora:

Cum se schimbă culoarea de ieșire a ecoului în Linux PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Concluzie

În acest scurt ghid – am aruncat o privire asupra modului în care puteți schimba culoarea echoIeșirea lui în Linux – folosind secvențele de evacuare ANSI și tput comanda.

De asemenea, am explorat modul în care puteți face procesul mai puțin detaliat folosind variabilele Bash, modificați culorile de fundal și stilul textului.

Timestamp-ul:

Mai mult de la Stackabuse