8 votos

el código de colores de echo dejó de funcionar en mountain lion

Lo siguiente produjo un texto con diferente color en el 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 el Lion de montaña sólo se imprime como si -e no se diera como argumento a echo.

15voto

duane Puntos 1351

El problema era que el código de escape \e se ha eliminado en la versión de eco de Mountain Lion. Cambiar \e a \033 y funcionará.

13voto

Nip Puntos 362

Como se describe en la Solicitud de Uso de la sección de la POSIX descripción de el eco de los comandos, el -n opción y secuencias de escape no son muy portátiles (debido a los diferentes apoyar en las diversas ramas del árbol de la familia Unix).

El printf comando (que, como eco, también es incorporada a la mayoría de las conchas, y está disponible como un comando externo) es más fiable estandarizado (a pesar de que la sintaxis no es la misma; por ejemplo, usted necesita mirar para % en el primer argumento, y varios argumentos no son automáticamente se unió 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'

4voto

Zach466920 Puntos 400

Una forma fiable de hacerlo es a través de tput:

RED=`tput setaf 1`
GREEN=`tput setaf 2`
NOCOLOR=`tput sgr0`

echo "Some text ${RED}in red color${NOCOLOR} no more color"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X