Imprimindo texto colorido usando script

4

Quando eu digito o comando abaixo no shell, recebo o OUTPUT na cor verde.

Comando

echo "3[32mCONNECTING TO abpwrk3[m";

Saída (na cor verde)

CONNECTING TO abpwrk

Mas se eu usar a mesma instrução em um script pequeno de uma linha e executá-lo. Em seguida, recebo a saída (na cor branca).

3[32mCONNECTING TO abpwrk3[m

O que eu estou perdendo no script. Eu preciso definir alguns parâmetros extras para iniciar as cores? Eu estou usando o k-shell.

    
por g4ur4v 26.10.2012 / 14:09

1 resposta

4

Você provavelmente está usando shells diferentes com implementações echo diferentes. Pelo menos em bash da implementação do echo, a interpretação das seqüências de escape não é ativada por padrão (você tem que ativá-lo com a opção -e ).

Em qualquer caso, printf geralmente está mais em conformidade entre os ambientes. Tente usar o seguinte:

_host=abpwrk ; printf '3[32mCONNECTING TO %s3[m\n' "$_host"
    
por 26.10.2012 / 14:27