Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Come modificare il colore di output di Echo in Linux

Introduzione

I echo il comando restituisce una determinata stringa a tubo di uscita standard, che in genere punta al terminale. Sebbene il tubo di uscita standard possa puntare ad altre interfacce, il echo Il comando viene in genere utilizzato per stampare e visualizzare i messaggi nel terminale. Per impostazione predefinita, il testo del messaggio visualizzato eredita il colore dell'altro testo nel terminale (che è personalizzabile in sé e per sé). Tuttavia, ci sono diversi modi per modificare il colore di output echo – sia per singole stringhe che per interi messaggi.

In questa breve guida, daremo un'occhiata a come modificare il colore di output di echo nei sistemi basati su Linux, utilizzando codici di escape ANSI, tput e come puoi rendere questo processo meno dettagliato negli script Bash.

Modifica il colore di output con i codici di escape ANSI

Il modo più semplice per cambiare il colore è tramite sequenze/codici di escape ANSI. Tutti i codici di escape ANSI iniziano con il Escape carattere, che può essere rappresentato in vari formati – 27 in decimale, x1B in esadecimale, come tasto di controllo ^[, o 33 in formato ottale. Le sequenze sono quindi seguite dal comando:

33[command

Dove la parentesi di apertura (Introduzione alla sequenza di controllo) è facoltativo, ma aiuta a separare il comando dal carattere di escape. Quando metti un codice colore come comando, cambia il colore del testo in arrivo:

33[0;34

0;34 è il codice per il colore blu, per esempio. Con questo solo, puoi cambiare il colore del testo in echo con:

33[0;34Text

Dove Text sarebbe colorato di blu. In alternativa, considera un semplice script bash da stampare "Benvenuti in Francia" nei colori della bandiera francese:

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

Facoltativo -e bandiera del echo comando consente di utilizzare caratteri speciali come n (nuova riga) e t (tab) all'interno della stringa di input.

Una volta eseguito lo script:

$ ./colors.sh

Risulta in:

Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

I codici ANSI non si limitano al colore, ma possono essere applicati anche per lo stile. I codici 0..9 rappresentano gli stili di testo, mentre i codici 30...37 rappresentare i colori:

Colore Codici Stili di testo Codici
Nero 30 Testo semplice 0
Rosso 31 Testo in grassetto 1
Green 32 Testo a bassa intensità 2
Marrone / Arancio 33 Testo sottolineato 4
Blu 34 Testo lampeggiante 5
Viola 35 Testo invisibile 8
Ciano 36 Testo barrato 9
Grigio Chiaro 37

Creiamo uno script bash per esplorare alcune di queste opzioni:

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

L'esecuzione di questo script comporta:

Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Dai un'occhiata alla nostra guida pratica e pratica per l'apprendimento di Git, con le migliori pratiche, gli standard accettati dal settore e il cheat sheet incluso. Smetti di cercare su Google i comandi Git e in realtà imparare esso!

Allo stesso modo, puoi cambiare il colore di sfondo di questi testi usando i codici 40..47:

colore Codici
Nero 40
Rosso 41
Green 42
Marrone / Arancio 43
Blu 44
Viola 45
Ciano 46
Grigio Chiaro 47

La modifica dello sfondo di una determinata stringa si riduce alla stessa regola di quando si cambia il colore del carattere: il codice stesso cambia il comportamento:

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

Nota: Come regola generale, puoi tradurre i colori dei caratteri in colori di sfondo aggiungendo 10. 30 è il colore del carattere nero, 40 è il colore di sfondo nero.

Cambia il colore di output con il tput

Un'alternativa ai codici ANSI sta usando il tput comando:

$ tput setaf color_code

setf consente 8 colori, mentre setaf consente 256 colori, quindi a seconda del comando che stai utilizzando, puoi scegliere tra 0..7 ed 0..255 come i codici colore. Entrambi comandi dedicare 0..7 agli stessi codici colore, mentre con setaf, 8..15 sono colori ad alta intensità e 16..231 sono tonalità diverse delle prime 8, e 232..255 sono i colori in scala di grigi:

Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
Crediti: wikipedia

Infine, tput permette inoltre di cambiare il colore di sfondo, aggiungere grassetto, abbassare l'intensità, ecc. con altri comandi:

Stili di testo Comandi
Colore di primo piano setaf
Colore di sfondo setab
Nessuno stile sgv0
Testo in grassetto perno
Testo a bassa intensità dim
Testo sottolineato smul
Testo lampeggiante lampeggiare
Testo inverso rev

Creiamo un altro script che utilizza tput per cambiare il colore di output 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!"

Questo script stamperà il seguente output nel terminale:

Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il comando tput offre un modo semplice per stampare qualsiasi colore attraverso un semplice codice colore. Creiamo ora uno script in grado di stampare ogni codice colore disponibile per il comando 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

Stamperà da 0 a 255 colori e i relativi codici:

Come modificare il colore di output di Echo in Linux PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Conclusione

In questa breve guida, abbiamo dato un'occhiata a come puoi cambiare il colore di echo's in Linux – usando ANSI Escape Sequences e il tput comando.

Abbiamo anche esplorato come rendere il processo meno dettagliato usando le variabili Bash, modificare i colori di sfondo e lo stile del testo.

Timestamp:

Di più da Impilamento