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.
Um grande inconveniente de se utilizar as opções "-v" e "-x" é que todo o conteúdo do script será debugado, deixando a saída na tela um pouco confusa. Para evitar esse problema, podemos e devemos utilizar o built-in set.
Vamos modificar totalmente o nosso script criado anteriormente para que possamos demonstrar o uso do set.
#!/bin/sh
# Script que lista todos os tipos de arquivos
# contidos no diretório corrente.
date +%c
echo "Iniciando listagem:"
set -vx
for i in *
do
file $i
done
set +vx
echo "Listagem concluída."
exit $?
Ao executar este exemplo, você notará que somente o trecho compreendido entre o "set -vx' e "set +vx" foi "debugado". Isso se deu pelo seguinte fato:
set -vx : Ativa o modo debug completo
set +vx: Desativa o modo debug
Como é possível notar, o built-in set nos permite "debugar" trechos específicos de nossos scripts. Portanto, se você suspeita que somente uma parte do seu script esteja dando problemas, utilize o set para "debugá-la".
[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!