Como corretamente ecoar o texto colorido no bash?

0

Estou com o seguinte problema:

No bash eu configurei:

COLOR="0;31" #red color

Se eu fizer

echo -e "\e[00;31mRED\e[00m" 

Eu obtenho

RED < - na cor vermelha no terminal

No entanto, se eu fizer

echo -e "\e[0$COLORm \RED\e[00m"

Acabei de receber

RED < - sem cores

Como posso imprimir usando cores e minha variável $COLOR ?

    
por Mr.Gando 17.11.2012 / 21:53

3 respostas

1

bash não sabe nada sobre a variável COLORm . Mas o exemplo a seguir funcionará

COLOR="0;31m"
echo -e "\e[0$COLOR \RED\e[0m"
    
por 17.11.2012 / 23:03
0

Use ${var} - por ex. \e[0;${COLOR}m - para separar o nome da variável do texto circundante.

Como alternativa, use printf "\e[0;%sm %s \e[m\n" "$COLOR" "RED"

(Nota: \e[00;31m não é necessário; \e[0;31m ou apenas \e[;31m é bom. O mesmo se aplica a \e[00m )

    
por 18.11.2012 / 00:00
0

Use chaves para isolar o nome da variável e eliminar a ambigüidade nas expressões em que os nomes das variáveis são adjuntos a alguns caracteres literais (como $ {hello} world) ou a outros locais complicados:

    
por 19.11.2012 / 04:42