você está aqui: Home  → Arquivo de Mensagens

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

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script