Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Hur man ändrar utdatafärgen för Echo i Linux

Beskrivning

Smakämnen echo kommandot matar ut en given sträng till standardutgångsrör, vanligtvis pekar på terminalen. Även om standardutgångsröret kan peka på andra gränssnitt – den echo kommandot används vanligtvis för att skriva ut och visa meddelanden i terminalen. Som standard ärver texten i det visade meddelandet färgen på annan text i terminalen (som är anpassningsbar i och för sig). Det finns dock flera sätt du kan ändra utdatafärgen på echo – både för enskilda strängar och för hela meddelanden.

I den här korta guiden tar vi en titt på hur du kan ändra utdatafärgen på echo i Linux-baserade system, med ANSI escape-koder, tput och hur du kan göra denna process mindre omfattande i Bash-skript.

Ändra utdatafärg med ANSI Escape-koder

Det enklaste sättet att ändra färg är genom ANSI escape-sekvenser/koder. Alla ANSI escape-koder börjar med Escape tecken, som kan representeras i olika format – 27 i decimal, x1B i hexadecimal, som kontrollnyckel ^[, eller 33 i oktalt format. Sekvenserna följs sedan av kommandot:

33[command

Där öppningsfästet (Control Sequence Introducer) är valfritt, men hjälper till att skilja kommandot från escape-tecknet. När du sätter en färg kod som kommandot ändrar det färgen på den mötande texten:

33[0;34

0;34 är koden för färgen blå till exempel. Enbart med detta kan du ändra färgen på texten echo med:

33[0;34Text

Var Text skulle färgas blå. Alternativt kan du överväga ett enkelt bash-skript att skriva ut "Välkommen till Frankrike" i den franska flaggans färger:

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

Valfritt -e flaggan echo kommando låter dig använda specialtecken som n (ny linje) och t (tab) inuti inmatningssträngen.

När du kör skriptet:

$ ./colors.sh

Det resulterar i:

Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

ANSI-koderna är inte begränsade till färg – utan kan också användas för stil. Koderna 0..9 representerar textstilar, medan koderna 30...37 representerar färger:

Färg Koder Textstilar Koder
Svart 30 Enkel text 0
Red 31 Fet text 1
Grön 32 Låg intensitet text 2
Brown / Orange 33 Stryk under text 4
Blå 34 Blinkande text 5
Purple 35 Osynlig text 8
Cyan 36 Genomstruken text 9
Ljusgrå 37

Låt oss skapa ett bash-skript för att utforska några av dessa alternativ:

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

Att köra det här skriptet resulterar i:

Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Kolla in vår praktiska, praktiska guide för att lära dig Git, med bästa praxis, branschaccepterade standarder och medföljande fuskblad. Sluta googla Git-kommandon och faktiskt lära Det!

På samma sätt kan du ändra bakgrundsfärgen för dessa texter med hjälp av koder 40..47:

färg Koder
Svart 40
Red 41
Grön 42
Brown / Orange 43
Blå 44
Purple 45
Cyan 46
Ljusgrå 47

Att ändra bakgrunden för en given sträng handlar om samma regel som när man ändrar teckensnittsfärgen – själva koden ändrar beteendet:

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

Notera: Som en tumregel – du kan översätta teckensnittsfärger till bakgrundsfärger genom att lägga till 10. 30 är svart typsnittsfärg, 40 är svart bakgrundsfärg.

Ändra utdatafärgen med tput

Ett alternativ till ANSI-koder är att använda tput kommando:

$ tput setaf color_code

setf tillåter 8 färger, medan setaf tillåter 256 färger så beroende på vilket kommando du använder kan du gå mellan 0..7 och 0..255 som färgkoderna. Både kommandon dedikerar 0..7 till samma färgkoder, medan med setaf, 8..15 är högintensiva färger och 16..231 är olika nyanser av de första 8, och 232..255 är gråskalefärger:

Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
Credit: wikipedia

Slutligen tput låter dig också ändra bakgrundsfärgen, lägga till fetstil, sänka intensiteten etc. med andra kommandon:

Textstilar Kommandon
Förgrundsfärg setaf
Bakgrundsfärg setab
Ingen stil sgv0
Fet text nål
Lågintensiv text dim
Stryk under text smul
Blinkande text blinka
Omvänd text rev

Låt oss skapa ett annat skript som använder tput för att ändra utskriftsfärgen 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!"

Detta skript kommer att skriva ut följande utdata i terminalen:

Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Kommandot tput ger ett enkelt sätt att skriva ut vilken färg som helst genom en enkel färgkod. Låt oss nu skapa ett skript som kan skriva ut alla tillgängliga färgkoder för kommandot 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

Det kommer att skriva ut 0 till 255 färger och deras koder:

Hur man ändrar utdatafärgen för Echo i Linux PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Slutsats

I den här korta guiden – vi har tagit en titt på hur du kan ändra färgen på echos utdata i Linux – med ANSI Escape Sequences och tput kommando.

Vi har också utforskat hur du kan göra processen mindre omfattande med Bash-variabler, justera bakgrundsfärger och stiltext.

Tidsstämpel:

Mer från Stackabuse