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

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna