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.

Como usar o debug no bash

Colaboração: Rodrigo Bernardo Pimentel

Data de Publicação: 23 de Março de 2001

Quando se executa um script em bash e um erro ocorre, é comum só vermos uma mensagem de erro, sem saber exatamente onde ela está sendo originada. A solução comum (e trabalhosa) é colocar flags no meio do script, pra ir "fechando o cerco", como echo 'Linha 1', echo 'Linha 10' etc.

Um jeito melhor é executar o script com bash -x:

 # bash -x /path/pro/script

Ou mesmo, se a intenção for deixar esse comportamento permanente, ou persistente por algum tempo, mudar a primeira linha do script de algo como

 #!/bin/bash

Para

 #!/bin/bash -x

Isso imprime na saída padrão todos os passos executados pelo script, valores de variáveis, etc, tornando muito mais fácil o debug.

A propósito, é normal que a saída de um bash -x seja maior do que uma tela. Isso se resolve, é claro, com um | less. O problema é que muitas vezes se usa o bash -x justamente pra se checarem mensagens de erro, que não são capturadas na solução acima. Então, uma boa sugestão é fazer:

 bash -x /path/pro/script 2>&1 | less

Isso também redireciona a saida de erro para o | less .

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 Rodrigo Bernardo Pimentel