Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.

Hoe de uitvoerkleur van Echo in Linux te veranderen

Introductie

De echo commando voert een gegeven string uit naar de standaard uitvoerpijp, meestal wijzend naar de terminal. Hoewel de standaard uitvoerpijp naar andere interfaces kan wijzen, is de echo commando wordt meestal gebruikt om berichten in de terminal af te drukken en weer te geven. Standaard neemt de tekst van het weergegeven bericht de kleur over van andere tekst in de terminal (die op zichzelf aanpasbaar is). Er zijn echter verschillende manieren waarop u de uitvoerkleur van kunt wijzigen echo โ€“ zowel voor individuele strings als voor hele berichten.

In deze korte handleiding bekijken we hoe u de uitvoerkleur van kunt wijzigen echo in op Linux gebaseerde systemen, met behulp van ANSI-escapecodes, tput en hoe je dit proces minder uitgebreid kunt maken in Bash-scripts.

Uitvoerkleur wijzigen met ANSI-escapecodes

De eenvoudigste manier om de kleur te wijzigen is door middel van ANSI-escape-reeksen/codes. Alle ANSI-escapecodes beginnen met de Escape karakter, dat in verschillende formaten kan worden weergegeven - 27 in decimaal, x1B in hexadecimaal, als de controletoets ^[of 33 in octaal formaat. De reeksen worden dan gevolgd door het commando:

33[command

Waar de openingshaak (Bedieningsvolgorde-introducer) is optioneel, maar helpt het commando te scheiden van het escape-teken. Wanneer je een kleurcode als het commando, verandert het de kleur van de aankomende tekst:

33[0;34

0;34 is bijvoorbeeld de code voor de kleur blauw. Alleen hiermee kunt u de kleur van tekst in echo met:

33[0;34Text

Waar Text blauw zou zijn gekleurd. Overweeg ook een eenvoudig bash-script om af te drukken "Welkom in Frankrijk" in de kleuren van de Franse vlag:

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

De optionele -e vlag van de echo commando kunt u speciale tekens gebruiken zoals n (nieuwe regel) en t (tab) binnenkant van de invoerreeks.

Zodra u het script uitvoert:

$ ./colors.sh

Het resulteert in:

Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.

De ANSI-codes zijn niet beperkt tot kleur, maar kunnen ook voor stijl worden toegepast. De codes 0..9 tekststijlen vertegenwoordigen, terwijl de codes 30...37 vertegenwoordigen kleuren:

Kleur Codes Tekststijlen Codes
Zwart 30 Eenvoudige tekst 0
Rood 31 Vette tekst 1
Groen 32 Tekst met lage intensiteit 2
Bruin / Oranje 33 Tekst onderstrepen 4
Blauw 34 Knipperende tekst 5
Paars 35 Onzichtbare tekst 8
Cyaan 36 Doorgestreepte tekst 9
Licht Grijs 37

Laten we een bash-script maken om enkele van deze opties te verkennen:

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

Het uitvoeren van dit script resulteert in:

Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.

Bekijk onze praktische, praktische gids voor het leren van Git, met best-practices, door de industrie geaccepteerde normen en bijgevoegd spiekbriefje. Stop met Googlen op Git-commando's en eigenlijk leren het!

Op dezelfde manier kunt u de achtergrondkleur van deze teksten wijzigen met behulp van codes 40..47:

kleur Codes
Zwart 40
Rood 41
Groen 42
Bruin / Oranje 43
Blauw 44
Paars 45
Cyaan 46
Licht Grijs 47

Het wijzigen van de achtergrond van een gegeven string komt neer op dezelfde regel als bij het wijzigen van de letterkleur - de code zelf verandert het gedrag:

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

Opmerking: Als vuistregel kun je lettertypekleuren vertalen naar achtergrondkleuren door 10 toe te voegen. 30 is zwarte letterkleur, 40 is een zwarte achtergrondkleur.

Wijzig de uitvoerkleur met de tput

Een alternatief voor ANSI-codes is het gebruik van de tput opdracht:

$ tput setaf color_code

setf maakt 8 kleuren mogelijk, terwijl setaf staat 256 kleuren toe, dus afhankelijk van het commando dat je gebruikt, kun je tussen 0..7 en 0..255 als de kleurcodes. Te gebruiken zowel commando's wijden 0..7 met dezelfde kleurcodes, terwijl met setaf, 8..15 zijn kleuren met een hoge intensiteit, en 16..231 zijn verschillende tinten van de eerste 8, en 232..255 zijn grijswaardenkleuren:

Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.
credit: Wikipedia

Tenslotte tput stelt je ook in staat om de achtergrondkleur te veranderen, vet toe te voegen, de intensiteit te verlagen, enz. met andere commando's:

Tekststijlen commando's
Voorgrondkleur setaf
Achtergrond kleur ingesteld
Geen stijl sgv0
Vette tekst pin
Tekst met lage intensiteit Sun.
Tekst onderstrepen smullen
Knipperende tekst knipperen
Tekst omkeren rev

Laten we een ander script maken dat gebruik maakt van tput om de uitvoerkleur te wijzigen: 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!"

Dit script drukt de volgende uitvoer af in de terminal:

Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.

Het tput-commando biedt een gemakkelijke manier om elke kleur af te drukken via een eenvoudige kleurcode. Laten we nu een script maken dat elke beschikbare kleurcode voor het tput-commando kan afdrukken:

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

Het zal 0 tot 255 kleuren en hun codes afdrukken:

Hoe de uitvoerkleur van echo in Linux PlatoBlockchain Data Intelligence te veranderen. Verticaal zoeken. Ai.

Conclusie

In deze korte handleiding hebben we bekeken hoe u de kleur van echo's uitvoer in Linux - met behulp van ANSI Escape Sequences en de tput opdracht.

We hebben ook onderzocht hoe u het proces minder uitgebreid kunt maken met behulp van Bash-variabelen, het aanpassen van achtergrondkleuren en het opmaken van tekst.

Tijdstempel:

Meer van Stapelmisbruik