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.
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
.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários