Pular para o conteúdo

Aliases Cores

Dica publicada em Shell Script / Miscelânea
Marcelo Oliver msoliver
Hits: 2.481 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Aliases Cores

O pequeno script apresentado cria 16 aliases para "mostrar" o texto colorido no terminal. Dessa forma não é mais necessário "decorar" o código das cores e nem "lotar" os scripts com as variáveis das cores. Um simples "ecovd Texto" mostra o texto na cor verde.

#!/usr/bin/env bash
dest=~/.bash_aliases;
cor=(pt vm vd mr az ll fe gl cz rc vc am ac lc fc br);
printf "%s\n" ${cor[@]} > cor.txt;wait;
awk '{printf " alias eco%s=#_eco%s(){ echo -e \"\\e[1;38;5;%02dm""$@""\\e[m\";};_eco%s#\n",$0,$0,NR-1,$0,$0}' cor.txt|sed "s/#/'/g" >> ${dest}

Testando

Primeiramente, execute:

source .bashrc

Feito isso, execute o comando abaixo, e serão testados os 16 aliases criados e é mostrado o nome de cada alias:

eval $(sed 's/.*/eco& Cor alias: eco& ;/' cor.txt|paste -sd '')
Linux: Aliases Cores
Agora basta usar o alias para a cor desejada em seus scripts. Por exemplo, para um texto roxo usa-se:

ecolc texto roxo

É isso, espero que possa ser útil.

Par ou Impar?

Solucionando problemas com o xmessage no wine

Wolfenstein Enemy Territory no Ubuntu 12 com som e Omnibots

Sincronizando data e hora com relogio atômico

Instalando Astah Community no Deepin OS

Curso Grátis de Dialog [vídeo]

#1 Comentário enviado por msoliver em 25/02/2021 - 20:33h
Na postagem da dica, o "site" interpreta a nova linha "\n", e o "escape" do "\e",
desse modo o comando fica errado.....
Postando novamente, na expectativa dos escapes não serem interpretados pelo "site"
#--------------------------------------------------------------------------------------------------------#
#!/usr/bin/env bash
dest=~/.bash_aliases;
cor=(pt vm vd mr az ll fe gl cz rc vc am ac lc fc br);
printf "%s\n" ${cor[@]} > cor.txt;wait;
awk '{printf " alias eco%s=#_eco%s(){ echo -e \"\\e[1;38;5;%02dm""$@""\\e[m\";};_eco%s#\n",$0,$0,NR-1,$0,$0}' cor.txt|sed "s/#/'/g" >> ${dest}
#--------------------------------------------------------------------------------------------------------#
Os erros ocorrem em:
printf "%sBarraEne" ${cor[@]} > cor.txt;wait;
awk '{printf " alias eco%s=#_eco%s(){ echo -e \"Barra\e[1;38;5;%02dm""$@""Barra\e[m\";};_eco%s#BarraEne",$0,$0,NR-1,$0,$0}' cor.txt|sed "s/#/'/g" >> ${dest}

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________

#2 Comentário enviado por removido em 26/02/2021 - 10:41h

[1] Comentário enviado por msoliver em 25/02/2021 - 20:33h

Na postagem da dica, o "site" interpreta a nova linha "\n", e o "escape" do "\e",
desse modo o comando fica errado.....
Postando novamente, na expectativa dos escapes não serem interpretados pelo "site"
#--------------------------------------------------------------------------------------------------------#
#!/usr/bin/env bash
dest=~/.bash_aliases;
cor=(pt vm vd mr az ll fe gl cz rc vc am ac lc fc br);
printf "%s\n" ${cor[@]} > cor.txt;wait;
awk '{printf " alias eco%s=#_eco%s(){ echo -e \"\\e[1;38;5;%02dm""$@""\\e[m\";};_eco%s#\n",$0,$0,NR-1,$0,$0}' cor.txt|sed "s/#/'/g" >> ${dest}
#--------------------------------------------------------------------------------------------------------#
Os erros ocorrem em:
printf "%sBarraEne" ${cor[@]} > cor.txt;wait;
awk '{printf " alias eco%s=#_eco%s(){ echo -e \"Barra\e[1;38;5;%02dm""$@""Barra\e[m\";};_eco%s#BarraEne",$0,$0,NR-1,$0,$0}' cor.txt|sed "s/#/'/g" >> ${dest}

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


Olá, obrigado por reportar.
Foi corrigido, veja se está de acordo.

Contribuir com comentário

Entre na sua conta para comentar.