L’ajout de couleurs ne fonctionne pas sous OS X

Je suis récemment passé à un Macbook Air et donc à OS X. J’y ai importé certains de mes projets actuels et essayé de les comstackr avec mon Makefile.

Mon Makefile a une entrée personnalisée ajoutant des couleurs avec / bin / echo -e “\ 033 [0; 31m” par exemple + le texte. Cela fonctionne très bien sur mon ancien ordinateur (OpenSuse dissortingb), mais il ne comstack même plus mon binary sur mon Mac. Voici ce que je reçois lorsque j’essaie de créer une ligne personnalisée dans mon Makefile:

-e \033[0;31m (MY TEXT) \033[00m 

Lorsque j’utilise un imput personnalisé lors de la compilation de mes fichiers .o, aucun d’entre eux n’est compilé, de sorte que la construction de mon projet échoue. Mon Makefile fonctionne très bien sans ces sorties personnalisées, mais j’aimerais savoir pourquoi elles ne fonctionnent pas sous OS X.

Je peux publier mon code Makefile si certaines personnes le demandent pour complément d’enquête.

Ceci est similaire, mais pas tout à fait un duplicata de Color termcaps Konsole? . Le problème est que -e n’est pas une option d’ écho OSX (qui suit POSIX ). Si vous -e le -e , cela fonctionnera comme prévu.

L’option -e est utilisée dans certaines implémentations pour autoriser \e comme synonyme de \033 (mais votre exemple utilise néanmoins ce dernier).

Que vous utilisiez echo ou printf pour les scripts POSIX est une question de goût, car ils acceptent le même ensemble de séquences antislash. Par exemple, printf accepte naturellement les séquences % pour formater les nombres, mais les programmeurs C ++ ont pris l’habitude de (cout vs echo) de ne pas utiliser les appels de style printf .

Pour référence.

  • printf – écrit une sortie formatée
  • echo – ecrit les arguments dans la sortie standard