Comment obtenir osx script shell pour afficher les couleurs en écho
Je suis en train d'ajouter de la couleur de la sortie de mes erreurs dans un script bash que j'ai exécuté sur un mac. Le problème est que les couleurs ne sont pas de travail. J'ai créé la plus simple de scripts afin de démontrer qu'il ne fonctionne pas:
#!/bin/bash
echo -e "\e[1;31m This is red text \e[0m"
Cependant, quand je le lance, je vois pas de couleurs à tous, comme le montre cette image. La couleur de la sortie de la commande ls fonctionne bien cependant.
- jetez un oeil à ce qui j'ai répondu à ta question là: stackoverflow.com/a/48216286/3782119
- J'ai été heureux de savoir que bash était vieux, et la mise à jour il a résolu mon problème.
Vous devez vous connecter pour publier un commentaire.
OSX est livré avec une ancienne version de Bash qui ne prend pas en charge la
\e
caractère d'échappement. Utilisation\x1B
ou de mise à jour de Bash (brew install bash
).Encore mieux, même si, serait d'utiliser des
tput
./usr/local/bin/bash --version
rendements GNU bash, version 4.4.23(1)-release (x86_64-apple-darwin17.5.0) Copyright (C) 2016 Free Software Foundation, Inc. Licence GPLv3+: GNU GPL version 3 ou ultérieure <gnu.org/licenses/gpl.html>Utilisation
\033
ou\x1B
au lieu de\e
pour représenter de<Esc>
caractère.Voir http://misc.flogisoft.com/bash/tip_colors_and_formatting
Dans des fichiers de script
printf
pourrait être encore une autre option, vous devez ajouter de fuite"\n"
bien.Testé sur macOS High Sierra 10.13.6:
Une autre option pourrait être à l'aide de zsh, qui respecte les
\e
notation.