echoes un shell integrado en Bash y dash ( /bin/sh). Si se ejecuta echodesde la línea de comandos, está utilizando el Bash incorporado, si está ejecutando su script de shell con shel Dash incorporado.
La versión de guión de echono conoce la -eopción, pero solo muestra algo literalmente sin ningún manejo especial para las \secuencias.
Use Bash para ejecutar su script de shell o use en /bin/echolugar de echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
Para evitar los problemas con diferentes versiones de echousted, puede utilizar printfen su lugar. En contraste, echo printfsiempre interpreta las \secuencias pero no agrega automáticamente un salto de línea al final, por lo que debe agregarlo \nal final si lo desea.
Como algunas versiones de printfNo entiendo \e, deberías usar \033en su lugar:
printf "\033[1;31mThis is red text\033[0m\n"
/bin/echocon guión (/bin/sh) y bash;echocon bash o./tes.shambos funcionan correctamente. El siguiente códigobashsolo funciona. si [$ UID -ne 0]; luego echo "Usuario no root" más echo "Usuario raíz" fi