você está aqui: Home  → Colunistas  →  Cantinho do Shell

 

Caracteres de controle em shell scripts

Por Jose Fernando Scheid Mascarenhas

Data de Publicação: 23 de Outubro 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.

Esta dica foi publicada originalmente na Dicas-L em 25 de setembro de 2007
Error: No site found with the domain 'moodle.idph.com.br' (Learn more)