Altera a cor do texto do nome do arquivo

7

Estou escrevendo scripts para inicializar e configurar um sistema grande com muitos componentes.
Cada componente possui seu próprio arquivo de log.

Gostaria de alterar a cor do nome do arquivo do componente para vermelho sempre que ocorrer um erro ocorrer em sua instalação / configuração.

Como posso fazer isso?

    
por amigal 18.04.2012 / 08:50

3 respostas

9

O Google encontrará a resposta. Imprimir Hello world em vermelho:

echo -e "3[0;31mHello world3[0m"

Explicado

<esc><attr>;<foreground>m

<esc>        = 3[  ANSI escape sequence, some environments will allow \e[ instead
<attr>       = 0      Normal text - bold possible with 1;
<foreground> = 31     30 + 1 = Color red - obviously!
m            = End of sequence

3[0m       Reset colors (otherwise following lines will be red too)

Veja link para obter uma lista completa de cores e outras funções (negrito, etc.).

O comando tput, se disponível, facilitará a vida:

echo -e "$(tput setaf 1)Hello world$(tput sgr0)"

Pode até salvar sequências em vars para uso mais simples.

ERR_OPEN=$(tput setaf 1)
ERR_CLOSE=$(tput sgr0)
echo -e "${ERR_OPEN}Hello world${ERR_CLOSE}"
    
por 18.04.2012 / 09:28
1
link .

Isso pode ser o que você quer.

Assim, você pode obter $? do processo de um arquivo de componente e, em seguida, optar por usar

echo -e "\e[1;31m"<the-component-file-name>\e[0m"

para tornar o texto vermelho.

    
por 18.04.2012 / 09:13
1

Se você tiver interesse em definir cores como variáveis, o seguinte pode ser útil para definir um painel de cores para o script bash

COL_BLACK="\x1b[30;01m"
COL_LIGHTBLACK="\x1b[30;11m"
COL_BLUE="\x1b[34;01m"
COL_LIGHTBLUE="\x1b[34;11m"
COL_CYAN="\x1b[36;01m"
COL_LIGHTCYAN="\x1b[36;11m"
COL_GRAY="\x1b[37;11m"
COL_LIGHTGRAY="\x1b[37;01m"
COL_GREEN="\x1b[32;01m"
COL_LIGHTGREEN="\x1b[32;11m"
COL_PURPLE="\x1b[35;01m"
COL_LIGHTPURPLE="\x1b[35;11m"
COL_RED="\x1b[31;01m"
COL_LIGHTRED="\x1b[31;11m"
COL_YELLOW="\x1b[33;01m"
COL_LIGHTYELLOW="\x1b[33;11m"

COL_RESET="\x1b[39;49;00m"
    
por 18.04.2012 / 14:48