shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

En: [Dicas-L]"Debug" no bash


From: Eriberto
Subject: En: [Dicas-L]"Debug" no bash
Date: Fri, 23 Mar 2001 22:07:47 -0300

----- Original Message -----
From: Rubens Queiroz de Almeida #200503# <address@hidden>
To: <address@hidden>
Sent: Friday, March 23, 2001 1:25 AM
Subject: [Dicas-L]"Debug" no bash


"Debug" no bash
---------------------------------------------------------------------
Colaboração: Rodrigo Bernardo Pimentel <address@hidden>

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" .
---------------------------------------------------------------
As mensagens da lista Dicas-L são veiculadas diariamente
para 14290 assinantes.

Para sair ou assinar a lista Dicas-L, consulte o documento que
se encontra em http://www.Dicas-L.unicamp.br/FAQ.html.

A redistribuição desta e outras mensagens da lista Dicas-L pode
ser feita livremente, deste que o conteúdo, inclusive esta nota,
não sejam modificados.
---------------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]