Réponses:
La façon la plus compatible de le faire consiste à utiliser tput
pour découvrir les bonnes séquences à envoyer au terminal:
bold=$(tput bold)
normal=$(tput sgr0)
alors vous pouvez utiliser les variables $bold
et $normal
formater les choses:
echo "this is ${bold}bold${normal} but this isn't"
donne
c'est audacieux mais ce n'est pas
tput smul
tput
est une excellente commande avec beaucoup de commandes pour de nombreuses tâches différentes.
motd
fichier. Comment / où définirais-je les variables $bold
et $normal
dans ce cas?
Afin d'appliquer un style à votre chaîne, vous pouvez utiliser une commande comme:
echo -e '\033[1mYOUR_STRING\033[0m'
Explication:
-e
option signifie que les chaînes échappées (contre-obliques) seront interprétéesLes entiers possibles sont:
[0m
offre et cela l'explique bien
\033[0m
3
- italique , au moins à konsole
Je suppose que bash s'exécute sur un terminal compatible vt100 dans lequel l'utilisateur n'a pas explicitement désactivé la prise en charge du formatage.
Tout d'abord, activez la prise en charge des caractères spéciaux dans echo
, en utilisant l' -e
option. Plus tard, utilisez la séquence d'échappement ansi ESC[1m
, comme:
echo -e "\033[1mSome Text"
Plus d'informations sur les séquences d'échappement ansi par exemple ici: ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
sinon les lignes suivantes de votre terminal seront également en gras
\033
vous souvenir que vous pouvez utiliser \e
commeecho -e "\e[1msome text\e[0m"
En théorie comme ça:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
Mais dans la pratique, elle peut être interprétée comme une couleur de «haute intensité».
(source: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html )