363 votes

Comment produire du texte en gras dans BASH?

J'écris un script bash qui affiche du texte à l'écran:

 echo "Some Text"
 

Puis-je formater le texte? Je voudrais le rendre audacieux.

Je vous remercie.

606voto

psmears Points 7809

Pour ce faire, la méthode la plus compatible 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 pour formater les choses:

 echo "this is ${bold}bold${normal} but this isn't"
 

donne

c'est audacieux mais ce n'est pas

53voto

Michał Trybus Points 5113

Je suppose que bash est en cours d'exécution sur un vt100-compatible terminal dans lequel l'utilisateur n'a pas explicitement de désactiver le support pour la mise en forme.

Tout d'abord, activer la prise en charge des caractères spéciaux dans echo, à l'aide de -e option. Plus tard, l'utilisation d'échappement ansi séquence de ESC[1m, comme:

echo -e "\033[1mSome Text"

Plus sur des séquences d'échappement ansi par exemple ici: ascii-table.com/ansi-escape-sequences-vt-100.php

25voto

roufamatic Points 6773

En théorie, cela ressemble à ceci: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html Mais dans la pratique, cela peut être interprété comme une couleur "de haute intensité".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X