Pular para o conteúdo

Aliases Cores

Dica publicada em Shell Script / Miscelânea
Marcelo Oliver msoliver
Hits: 2.490 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?

Problemas de tabulação no VI

Comentando várias linhas em scripts bash

Alterando as ID tags de seus arquivos de áudio em massa pelo terminal

sudo: lendo a senha automaticamente através de shell script

Atualizando o Ubuntu com uma linha

#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.