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"
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
?
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"
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
)
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:
Tags command-line bash