Comment faire: souligné, gras, italique, barré et couleur dans Gnome Terminal?
Gras
Italique
souligner
s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t
background
font
& lt; (son mono si vous ne pouviez pas le dire)
Les terminaux ANSI / VT100 et les émulateurs de terminaux ne sont pas seulement capables de afficher du texte en noir et blanc; ils peuvent afficher les couleurs et formatés textes grâce à des séquences d'échappement. Ces séquences sont composées de la Caractère d'échappement (souvent représenté par "^ [" ou "Esc") suivi de d'autres caractères: "Esc [FormatCodem".
Dans Bash, le caractère peut être obtenu avec les syntaxes suivantes:
\e
3
\x1B
Les commandes (pour un copier-coller facile):
echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"
Source (y compris tous les types de codes de couleur de premier plan / d'arrière-plan): lien
Pour étendre la réponse de Sylvain, certaines fonctions d’aide:
ansi() { echo -e "\e[m${*:2}\e[0m"; }
bold() { ansi 1 "[email protected]"; }
italic() { ansi 3 "[email protected]"; }
underline() { ansi 4 "[email protected]"; }
strikethrough() { ansi 9 "[email protected]"; }
red() { ansi 31 "[email protected]"; }
Alors
Quelque chose qui n'a pas encore été couvert est la combinaison de deux ou trois paramètres, e. g. gras et souligné , dans une couleur prédéfinie. Ceci est réalisé par une syntaxe à trois voies, par exemple:
~$ printf "\e[3;4;33mthis is a test\n\e[0m"
provoquera l'impression "ceci est un test" en jaune ( 33m
), en italique ( 3m
) ET souligné ( 4m
).
Notez que n'est pas nécessaire pour répéter le \e[
à chaque fois.
Notez aussi que (comme pour Sylvain) j'ai également ajouté un \e[0m
pour réinitialiser les paramètres à chaque fois, car sinon la couleur jaune et le style de police resteront actifs dans le terminal! Inutile de dire que vous devez absolument veiller à ce qu’ils soient réinitialisés dans les scripts, car les utilisateurs qui utilisent vos scripts peuvent ne pas l’apprécier si votre script de façon permanente modifie leurs paramètres de couleur + style dans le terminal!
Le terminal GNOME 3.28 (VTE 0.52), qui fait ses débuts dans Ubuntu 18.04 LTS, prend en charge quelques styles supplémentaires, notamment les soulignements bouclés et colorés de Kitty, comme dans Konsole et l’attribut de blink très apprécié aussi bien.
Celles-ci fonctionnent également automatiquement dans tout autre émulateur de terminal basé sur VTE (par exemple Tilix, Terminator, Xfce4-terminal, Guake, etc.), étant donné que VTE est au moins à la version 0.52.
Voici une liste présentant les séquences d'échappement standard, ainsi que les ajouts du terminal GNOME (VTE). Notez que pour chaque séquence d'ouverture, je montre également la séquence de fermeture de cette propriété uniquement, plutôt que le \e[m
ou \e[0m
générique qui désactive tous les modes spéciaux.
echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'
echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'
echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'
echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
(*) Les valeurs Truecolor pour les soulignements sont légèrement approchées.
Et un peu bizarre qui ne correspond pas vraiment à cette image, car il est plus fonctionnel qu’un style, mais mérite probablement d’être mentionné ici, est lien hypertexte compatible avec iTerm2, disponible depuis le terminal GNOME 3.26 (VTE 0.50):
echo -e '\e]8;;http://askubuntu.com\ahyperlink\e]8;;\a'
Lire d'autres questions sur les étiquettes command-line gnome-terminal bash scripts