Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
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 redireciona a saida de erro tambem pro "| less" .
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.





