Lorsque j'essaie d'imprimer du texte coloré en utilisant des séquences d'échappement ANSI via la commande echo
intégrée, il semble que la séquence d'échappement \e
dans la chaîne que je fournis soit interprétée littéralement au lieu de comme l'"échappement" qu'elle est censée représenter. Cela se produit uniquement dans Snow Leopard - les exemples ci-dessous fonctionnent comme prévu dans Leopard.
Apparemment, echo
prend en charge l'option -e
car il interprète correctement \n
lorsqu'elle est utilisée :
~ $
~ $ echo "\n"
\n
~ $ echo -e "\n"
~ $
Mais lorsque j'essaie d'utiliser \e
, j'obtiens ceci :
~ $ echo -e "\e[34mCOLORS"
\e[34mCOLORS
~ $
Comme je l'ai dit, dans Leopard, le résultat ci-dessus me donnerait la chaîne "COLORS" en couleur.
Est-ce que quelqu'un sait pourquoi cela pourrait être un changement intentionnel ? Et avez-vous une solution de contournement pour imprimer des séquences d'échappement ANSI à partir de scripts Bash sur Snow Leopard ?
La version de shell Bash sur mon ordinateur Leopard est 3.2.17(1)-release
et 3.2.48(1)-release
sur mon ordinateur Snow Leopard.