web-dev-qa-db-fra.com

Changer la couleur du texte en ligne?

Petite question:

À l'aide de bash, est-il possible d'imprimer une phrase telle que chaque mot ait une couleur différente?

C'est à dire; imprimer un mot en ligne, changer la couleur du texte, répéter?

1
Graviton

Séquences d'échappement ANSI

Vous pouvez utiliser des séquences d'échappement ANSI. Cela devrait fonctionner dans les écrans de texte ainsi que dans la plupart des émulateurs de fenêtres de terminaux Linux.

Voir ce lien pour plus de détails,

en.wikipedia.org/wiki/ANSI_escape_code

Exemple 1: texte blanc sur fond noir

echo -e "\0033[37;40m###############\0033[0m"

Exemple 2: texte noir sur fond blanc grisâtre

echo -e "\0033[30;47m###############\0033[0m"

Exemple 3: utilisation des variables inversvid, greenback, blueback et resetvid

inversvid="\0033[7m"
resetvid="\0033[0m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"
echo -e "$inversvid Now it is inverse colours $resetvid"
echo -e "$greenback Now it is greenback $resetvid and $blueback now blueback $resetvid"

enter image description here

Déclarer et stocker des variables

Exemple de variables de couleur ANSI de base, que j’utilise dans les scripts de shell bash et que vous pourriez trouver utiles,

inversvid="\0033[7m"
resetvid="\0033[0m"
redback="\0033[1;37;41m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"

Exemple de variable de couleur ANSI avancée (qui correspond presque à la couleur du logo mkusb),

logoansi="\0033[38;5;0;48;5;148m"

Les couleurs ANSI avancées fonctionnent dans la plupart des émulateurs de fenêtre de terminal, mais pas dans les écrans de texte, où la couleur par défaut est "la couleur de base la plus proche".


  • Il est facile de déclarer et de stocker les variables dans un script shell bash (près du début, au moins avant qu’elles ne soient utilisées).
  • Si vous souhaitez les utiliser de manière interactive, vous pouvez déclarer et stocker les variables dans le fichier de configuration ~/.bashrc

Et bien sûr, vous pouvez créer des variables [modifiées] pour exécuter ce que vous voulez.

2
sudodus