echoé um shell embutido no Bash e dash ( /bin/sh). Se você executa a echopartir da linha de comando, está usando o Bash built-in, se está executando seu shell script com sho Dash embutido.
A versão de traço de echonão conhece a -eopção, mas apenas produz qualquer coisa literalmente sem nenhum tratamento especial para \sequências.
Use o Bash para executar seu script de shell ou use em /bin/echovez de echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
Para evitar os problemas com diferentes versões, echovocê pode querer usar printf. Ao contrário de echo printfsempre interpreta \seqüências, mas não adiciona automaticamente um avanço de linha no final, portanto você deve anexá \n-lo ao final, se desejar.
Como algumas versões printfdo não entendem, \evocê deve usar \033:
printf "\033[1;31mThis is red text\033[0m\n"
/bin/echocom dash (/bin/sh) e bash;echocom bash ou./tes.shambos funcionam corretamente. O código abaixo funcionabashapenas com . se [$ UID -ne 0]; then echo "Não usuário root" else echo "Usuário Root" fi