Como em qualquer programa temos problemas, às vezes perdemos alguns fios de cabelo para resolvê-los, porém podemos deixar de ficar carecas com alguns programas de debug. Essa palavra significa depurar, purificar, no caso, é isolar e resolver o problema no programa...
Para nos poupar do stress o bash vem com recursos interessantes para nos facilitar a vida quando existe um erro no programa.
Técnica simples:
Uma técnica que estava vendo e utilizava-a a muito tempo em meus scripts (muito no de firewall) para achar um erro em determinado local do script. Ela se resume a simplesmente a adicionar o comando echo em lugares estratégicos do script, sendo assim você pode ver por exemplo como está determinada variável antes e depois de determinado comando, ou achar um erro entre dois echo.
Ex. variável modificada:
#!/bin/bash
$teste="V.O.L."
echo $teste
teste="vol"
echo $teste
Sendo assim veríamos o que está ocorrendo na variável no decorrer do script. =D
Ex. "echos" em lugares estratégicos:
echo "parte 1"
comandos
comandos
comandos
echo "parte 2"
Assim podemos fazer um debug simples, adicionando o comando echo em lugares estratégicos do script, isso se aplica a qualquer linguagem de programação. =D
Usando comandos do bash
O bash vem com comandos de debug muito bons, vou mostrar 2 deles...
bash -n script.sh
Com este comando fazemos a verificação sintática do script, ou seja, vemos se tem algum comando errado, algum parênteses fora do lugar, ou alguma aspas que não foi fechada.
bash -x script.sh
Esse é um debug mais pesado, se você está nervoso faça ele antes que quebre o computador =D, ele mostra o que ocorre a cada comando processado, mas lembre-se, o problema pode ser extremamente simples, então não comece por aqui. (: