você está aqui: Home  → Arquivo de Mensagens Curso Gratuito sobre Expressões Regulares, com o Prof.  Julio Neves

Debug no bash

Colaboração: Fernando M. Roxo da Motta

Data de Publicação: 19 de Abril de 2001

Por vezes um script é muito grande e nos interessa fazer este "trace" apenas em um trecho do programa. Como fazê-lo ? Coloque no início do trecho uma instrução :

set -x

Desta linha em diante o "trace" será ligado. Para desligar o "trace" mais adiante para evitar listar partes sem importância, use :

set +x

Veja que por vezes nós sabemos que o "problema" só ocorre quando alguma variável assume um determinado valor. Neste caso podemos ligar o "trace" condicionalmente :

if [ $VARIAVEL = valor ]; then
 set -x
fi
{trecho a debugar}
set +x

Como se pode ver o "trace" pode ser desligado mesmo que ele não esteja ligado.

Esta forma de listar o script, durante a execução, vai listar o comando após a substituição das variáveis. Como identificar que variável tem que valor ? Podemos usar a opção "-v" para listar as linhas duarnte a leitura. Na verdade eu prefiro usar uma combinação das duas opções :

set -xv
{trecho a "debugar"}
set +xv

Da mesma forma que antes o "+" desliga a opção.

Um último par de dicas. Se um script "liga" o "debug", apenas os "scripts" rodados com o comando "." terão o "debug" ligado. Para evitar que fique algum "debug" ligado quando se reutiliza o ambiente ( através do comando "." ) é interessante colocar no final do script um desligar geral de "debug", mesmo que o "debug" não tenha sido ligado :

#
# Desliga "debug" se tiver sido ligado
set +xv
# Fim do script....


Veja a relação completa dos artigos de Fernando M. Roxo da Motta