La encoding del color del eco dejó de funcionar en el león de montaña

El siguiente text producido con diferente color en la terminal en Lion, pero no en Mountain Lion. ¿Por qué? ¿Qué se puede hacer para hacer eco en color en Mountain Lion?

echo -e "Some text \e[0;32m in color \e[0m no more color"; 

En Mountain Lion, simplemente se imprime como si no se hubiera dado como argumento para repetir.

  • Terminales "osascript -e" commands
  • ¿Cómo get un emacs "moderno" que se ejecuta en un terminal en os x lion?
  • ¿Cómo se cambia el formatting del nombre de file de la captura de pantalla OSX?
  • iterm: ¿cuál es la combinación de teclas para cambiar los paneles?
  • Comando de Unix para copyr recursivamente files JPG en un tree de directorys complejos
  • Mostrar los metadatos de la versión PDF de un file PDF
  • ¿Bash en OSX no distingue entre mayúsculas y minúsculas?
  • ¿Cómo elimino un file invisible bloqueado en la Papelera?
  • ¿Escribir código en el Sistema 6?
  • Evitar que el Finder se inicie al arrancar
  • ¿Hay alguna forma de ver qué hace OS X cuando se inicia cuando no se reproduce ningún timbre?
  • Problemas con files y carpetas con nombres que contienen diéresis
  • 3 Solutions collect form web for “La encoding del color del eco dejó de funcionar en el león de montaña”

    Como se describe en la sección Uso de la aplicación de la descripción POSIX del command echo , la opción -n y las secuencias de escape no son muy portátiles (debido a la compatibilidad diferente en las diversas twigs del tree de la familia Unix).

    El command printf (que, como echo , también se incorpora a la mayoría de shells y está disponible como un command externo) se estandariza de forma más confiable (aunque la syntax no es la misma, por ejemplo, hay que mirar % en el primer argumento y los arguments no se unen automáticamente con un espacio):

     printf 'Some text \e[0;32m in color \e[0m no more color\n' printf '%s \e[0;32m%s\e[0m %s\n' 'Some text' 'in color' 'no more color' 

    El problema era que el código de escape \ e ha sido eliminado en la versión del eco del león de montaña. Cambie \ e a \ 033 y funcionará.

    Una forma confiable de hacer esto es a través de tput:

     RED=`tput setaf 1` GREEN=`tput setaf 2` NOCOLOR=`tput sgr0` echo "Some text ${RED}in networking color${NOCOLOR} no more color" 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).