Variáveis de cor no figlet!

1

Estou criando uma tela de login quando inicio meu CLI Arch Linux e construo um script no arquivo

/etc/bash.bashrc

Assim como segue abaixo:

#COMMANDS CREATED INSIDE /ETC/BASH.BASHRC FILE
# USING ANSI COLORS
RED="\e[31m"
ORANGE="\e[33m"
BLUE="\e[94m"
GREEN="\e[92m"
STOP="\e[0m"


# LOGIN SCREEN MESSAGE 
screenfetch
printf "${GREEN}"
printf "=================================\n"
printf "${ORANGE}"
figlet -w 200 -f standard "F4NT0 ARCH LINUX"
printf "${BLUE}"
figlet -w 200 -f  small "CLI Operational System"
printf "${GREEN}"
printf "=================================\n"
printf "${STOP}"

No código acima, eu construo as variáveis que chamam as cores e deixo "vazar" nas mensagens criadas com o programa figlet usando o printf .

Desta forma eu posso colorir as mensagens até a última chamada da variável (a mensagem abaixo fica com a cor que eu chamo na variável acima), quando eu chamo a próxima variável, o código muda a cor da próxima mensagem e assim por diante até a variável STOP que interrompe o vazamento das cores.

EugostodecomofuncionanomeuArch,masdeformaprogramáveleuacho"sujo" ...

Existe uma maneira de adicionar cores (ANSI, tput ou outras) no comando figlet para se tornar mais adequado para adicionar cores dentro do Scripts no Unix / Linux?

    
por F4NT0 15.05.2018 / 22:29

1 resposta

0

A maneira que eu mostro Nessa Questão é a Melhor Maneira de Colocar Cores no Figlet, o Modo que uma cor está colocando antes dos comandos é a única maneira que eu encontro para Fazer funcionar, E depois que eu chamo a próxima Cor, a próxima linha será Alterar para a nova cor!

Se alguém quiser saber, a maneira que eu chamo as cores está usando os códigos de cores ANSI, como abaixo:

Cores regulares:

  • \e[30m = Black
  • \e[31m = Red
  • \e[32m = Green
  • \e[33m = Yellow
  • \e[34m = Blue
  • \e[35m = Purple
  • \e[36m = Cyan
  • \e[37m = White

Cores claras:

  • \e[90 = Light Black
  • \e[91 = Light Red
  • \e[92 = Light Green
  • \e[93 = Light Yellow
  • \e[94 = Light Blue
  • \e[95 = Light Purple
  • \e[96 = Light Cyan
  • \e[97 = Light White

A maneira que eu uso não é o único caminho, nem mesmo o completo

Para as informações completas sobre cores ANSI, leia este site:

link

Sobre as variáveis:

  • eu coloquei o nome da cor todo em Caps porque é a melhor maneira de evitar Confusion

GREEN="\e[92m"

  • Para chamar a variável criada, você precisa pegar o valor do variável, usando a construção $ {}

${GREEN}

  • Para eliminar a cor antes do comando, você precisa usar o printf para vazar a cor (eu uso o Printf, mas acho que o eco também funciona).

printf "${GREEN}"

  • A próxima linha que imprime algo na tela terá a cor da variável.

printf "${GREEN}"

figlet -f standard "This Will Be Green"

O texto deve ser assim:

  • Parainterromperovazamentodecoresnolocalemquenãodeveria,hádoispassos:
    • Sevocêquisercolocarumanovacor,bastaligarparaanovacor
    • Sevocêquiserpararacor,useaseguintevariável:

      STOP="\e[0m"

      • Put the Stop in the End where after that you Don´t want to Change the color like that:

      printf "${STOP}"

por 23.05.2018 / 16:37