O texto a seguir produziu texto com cores diferentes no terminal no Lion, mas não no Mountain Lion. Por quê? O que pode ser feito para ecoar em cores no Mountain Lion?
echo -e "Some text \e[0;32m in color \e[0m no more color";
Na montanha Lion, apenas imprime como se -e não tivesse sido dado como argumento para ecoar.
/bin/echo
comando externo, não o eco que está embutido no shell que você está usando (por exemplo, aquele nomeado na#!
linha na parte superior do seu script). Você precisa consultar a página de manual do shell que está usando (provavelmente o bash ) para ver quais opções seu eco interno suporta.Respostas:
Conforme descrito na seção Application Usage da descrição POSIX do comando echo , as
-n
seqüências de opção e escape não são muito portáteis (devido ao suporte diferente nos vários ramos da árvore genealógica do Unix).O
printf
comando (que, como eco , também é incorporado à maioria dos shells e está disponível como um comando externo) é padronizado com mais confiabilidade (embora a sintaxe não seja a mesma; por exemplo, você precisa observar%
no primeiro argumento e vários argumentos são não se juntou automaticamente a um espaço):fonte
O problema era que o código de escape \ e foi removido na versão do eco do leão da montanha. Altere \ e para \ 033 e ele funcionará.
fonte
man bash
listar\e
como uma fuga válida.Uma maneira confiável de fazer isso é através do tput:
fonte