Testo decorato nel terminale

ck1

A grande (ahemmmm…) richiesta (come da commenti qui) provo a scrivere sul terminale testo con caratteristiche diverse dal solito, chissà… 😉
In passato me ne sono già occupato, con Python, qui, qui e qui.

L’idea è di usare solo echo e sed. in questo modo:

t-0

Se il comando è lungo ovviamente si può spezzare:

t-1

Adesso è ora di far entrare le sequenze di escape ANSI.
Siccome sono tante procedo un passo per volta, provo…

t-2

I codici sono ostici, posso creare codici mnemonici, ecco i primi 2

V reVerse \x1b[7m
Z reset (Zero) \x1b[m

Ho sostituito \e con \x1b; è il codice di ESC, per qualche modivo si perde con sed.
L’esempio precedente diventa:

t-3

Altri 2 codici:

H bold (Heavy) \x1b[1m
U Underline \x1b[4m
I Italic \x1b[3m

t-4

Notare come i codici si sommino. Pare funzioni. Ce ne sarebbero anche altri, non sempre attivati, omessi.

OK, adesso il colore del testo:

k black \x1b[30m
r red \x1b[31m
g green \x1b[32m
y yellow \x1b[33m
b blue \x1b[34m
m magenta \x1b[35m
c cyan \x1b[36m
w white \x1b[37m

t-5

OK, il bianco è grigino ma va bene così 😀
Cosa succede se due codici colore si sovrappongono?

t-6

ottimo, il nuovo sostituisce il vecchio.

Resta –e temo guai– il colore dello sfondo; i codici sono simili ai precedenti, cambia la serie che va da 40 a 47:

K black \x1b[40m
R red \x1b[41m
G green \x1b[42m
Y yellow \x1b[43m
B blue \x1b[44m
M magenta \x1b[45m
C cyan \x1b[46m
W white \x1b[47m

t-7

Sovrapposizioni:

t-8

Ed è OK anche con testo e sfondo colorati:

t-9

È giunto il momento di fare lo script tdec:

echo -e "$*" |\
    sed s/%H/\\x1b[1m/g  |\
    sed s/%U/\\x1b[4m/g  |\
    sed s/%I/\\x1b[3m/g  |\
    sed s/%k/\\x1b[30m/g |\
    sed s/%r/\\x1b[31m/g |\
    sed s/%g/\\x1b[32m/g |\
    sed s/%y/\\x1b[33m/g |\
    sed s/%b/\\x1b[34m/g |\
    sed s/%m/\\x1b[35m/g |\
    sed s/%c/\\x1b[36m/g |\
    sed s/%w/\\x1b[37m/g |\
    sed s/%K/\\x1b[40m/g |\
    sed s/%R/\\x1b[41m/g |\
    sed s/%G/\\x1b[42m/g |\
    sed s/%Y/\\x1b[43m/g |\
    sed s/%B/\\x1b[44m/g |\
    sed s/%M/\\x1b[45m/g |\
    sed s/%C/\\x1b[46m/g |\
    sed s/%W/\\x1b[47m/g |\
    sed s/%Z/\\x1b[m/g

t-10

Pronto per essere abilitato; notare che l’apice e le virgolette vanno escapati (come gli altri usuali caratteri speciali).

Nota: assemblato alle 15 di giovedì 22; continua a bloccarsi sul salvataggio; copio l’HTML e chissà… 😦
Se continua questa storia passerò al signor Blogspot con un blog tutto nuovo 😀

:mrgreen:

Posta un commento o usa questo indirizzo per il trackback.

Trackback

  • Testo decorato nel terminale – 2 | Ok, panico su 24 dicembre 2016 alle 08:05

    […] Continuo da qui, con una versione complementare,  diversa. Cose che capitano quando incontro gente più smart di me, assay😀 Invece di tutte le combinazioni possibili ne servono solo quelle che si intende usare. E anche la codifica dev’essere più chiara, notare la simmetria dei codici di inizio|fine. […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: