De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Caracteres de controle em shell scripts

Colaboração: Jose Fernando Scheid Mascarenhas

Data de Publicação: 25 de Setembro de 2007

Incluir caracteres de controle no corpo de um shell script, apesar de funcionar, não é uma boa pratica. Podem ocorrer problemas em determinados editores ou mesmo "endoidar" a impressora ao tentarmos imprimir o script.

O mais correto e utilizar a opção -e do comando echo e informar valor octal do caractere ESCAPE da seguinte forma:

 echo -e "\033[7m TESTE REVERSO \033[m" 

ou se preferir:

ESC="\033"
echo -e "${ESC}[7m TESTE REVERSO{ESC}[m"

Porém, se você estiver no Polo Norte, sentado em frente a um terminal WYSE-60 (o primeiro terminal a gente nunca esquece), ligado à um servidor Linux na porta COM1, à incrível velocidade de 38400 bps, seu script irá falhar.

Para torna-lo portável utilize o comando tput para buscar as características, específicas de cada terminal no banco de dados TERMINFO.

Assim sendo o script ficaria:

VREV=`tput rev`     # Reverso
VNOR=`tput sgr0`    # Normal
VPIS=`tput blink`   # Sublinhado
VBRI=`tput bold`    # Escuro
FVMO=`tput setab 1` # Fundo vermelho
CVMO=`tput setaf 1` # Caracter Vermelho
....
....
....
echo "${VREV} REVERSO ${VNOR}"
echo "${VPIS} PISCANTE ${VNOR}"
echo "${VREV}${VPIS} REV E PISCANTE ${NOR}"

Tanto você quanto os esquimós ficarão felizes para sempre.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Jose Fernando Scheid Mascarenhas