Debugando shell scripts

Um simples artigo que mostrará ao usuário iniciante em programação shell script algumas formas de se debugar scripts em busca daqueles erros, por vezes difíceis de serem detectados à primeira vista.

[ Hits: 31.104 ]

Por: Sandro Marcell em 29/05/2008 | Blog: http://sanmarcell.wordpress.com


Introdução



Para muitos usuários que estão iniciando em programação, uma das principais dores de cabeça é descobrir erros que ocorrem em seus programas, eu mesmo já passei por isso e sei o quanto é chato ver aquele seu primeiro programa feito com muito esforço e dedicação não funcionar de jeito nenhum.

Em virtude disso, resolvi escrever este simples artigo cujo intuito é dar uma força àqueles que estão começando a programar em shell script, seja ele sh, csh (tcsh), bash, ksh ou zsh.

Descobrindo erros

Todos os interpretadores de comando que foram citados no início do artigo fornecem opções para debugar as linhas de entrada que lhes são fornecidas, e essas opções são comuns a todos eles. São elas:
  • -v: Mostra a linha de entrada que está sendo lida pelo shell.
  • -x: Mostra as variáveis já substituídas, comandos e seus argumentos no momento de sua execução.

Vejamos alguns exemplos:

Crie um simples script com o seguinte conteúdo:

#!/bin/sh -v
echo "Olá mundo\!"
exit $?

Execute-o e note que ao utilizar a opção -v o interpretador imprime na tela a linha que esta sendo lida e prossegue normalmente com sua execução. Agora no mesmo script, vamos substituir o -v pela opção -x.

Note agora que a opção -x possui basicamente o mesmo comportamento da opção -v, exceto pelo fato de que os todos os comandos são marcados com um sinal de '+' e que as variáveis são substituídas pelos seus respectivos valores. Caso queira um modo debug completo, utilize as duas opções juntas (-vx).

Com isso é possível notar que fica muito mais fácil procurar por possíveis erros em nossos scripts, sejam eles causados por substituição de variáveis ou comandos com sintaxe incorreta.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Debugando com o built-in set
   3. Criando uma função debug
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Shell - Funções

Shell Script para WEB

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

AWK - Manipulação de arquivos de texto

Sed - Introdução

  
Comentários
[1] Comentário enviado por dailson em 29/05/2008 - 12:06h

Excelente dica !!
Parabéns

[2] Comentário enviado por templuseletronic em 29/05/2008 - 15:10h

Muito boa dica,principalmente para iniciantes em script...

[3] Comentário enviado por Pianista em 29/05/2008 - 17:46h

muito bom pra iniciantes e até mesmo pra quem já tem esperiencia.

[4] Comentário enviado por fco em 29/05/2008 - 18:39h

O mestre do shell script, SMarcell!!!

Muito bom seu artigo. Simples e objetivo - direto ao ponto!

Parabéns!

Falou!!!

[5] Comentário enviado por gjr_rj em 29/05/2008 - 18:43h

Queria ter lido uma dica assim quando fiz o meu primeiro script.
Mesmo já tendo uma experiêcia, vai ajuda em muito.

Parabéns!

[6] Comentário enviado por teixeira em 30/05/2008 - 10:47h

Parabéns!

[7] Comentário enviado por f_Candido em 30/05/2008 - 12:29h

Muito Bom. Simples e Direto.

Abraços

[8] Comentário enviado por GilsonDeElt em 02/06/2008 - 14:38h

Valeu, cara!
Congratulations, SMarcell!

Os scripteiros de plantão que nem eu agradecem pela dica, simples, direta e produtiva.

Engraçado que quando meus scripts dão pau, eu fico meio sem saber onde, e começo aquela longa revisão manual...
Agora, vou poder "quebrar" essa revisão!

abraços, cara!
E que venha o próximo artigo!

[9] Comentário enviado por VonNaturAustreVe em 02/06/2008 - 19:59h

Hi

Perfeita á dica isso vai quebrar um galhão.

[]'s

[10] Comentário enviado por cesar em 03/06/2008 - 13:05h

Muito bom,

[]'s

[11] Comentário enviado por guino_luis em 07/04/2009 - 14:58h

Boa dica, vai ajudar muito na procura de erros!!
vlw

Guino

[12] Comentário enviado por fdmarp em 25/04/2009 - 12:28h

bacana


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts