Bash:
Usando um depurador

Como Fazer:

O Bash não vem com um depurador integrado como algumas outras linguagens, mas você pode usar comandos integrados como set -x para rastrear o que está acontecendo. Ou, para um upgrade, tem o bashdb, um depurador apropriado para percorrer o seu código. Aqui vai uma espiada:

# Usando set -x para depurar
set -x
echo "Iniciando a depuração"
my_var="Olá, Mundo da Depuração!"
echo $my_var
set +x

# Usando bashdb
# Instale o bashdb com seu gerenciador de pacotes, por exemplo, apt, yum, brew.
# Depure um script chamado my_script.sh:
bashdb my_script.sh

Saída ao executar com set -x:

+ echo 'Iniciando a depuração'
Iniciando a depuração
+ my_var='Olá, Mundo da Depuração!'
+ echo 'Olá, Mundo da Depuração!'
Olá, Mundo da Depuração!
+ set +x

Mergulho Profundo

Historicamente, depurar scripts Bash significava poluir seu código com declarações echo. Mas então veio set -x, nos dando uma espiada na execução em tempo real sem impressões manuais. E para aqueles que desejam mais controle, o depurador bashdb surgiu, inspirado no depurador gdb para C/C++.

Quanto às alternativas, além dos comandos set (-x, -v, -e), outras opções incluem redirecionar a saída para um arquivo para análise ou usar ferramentas externas como ShellCheck para análise estática.

Em termos de implementação, set -x é fácil; é uma opção nativa do Bash que imprime comandos e seus argumentos à medida que são executados. bashdb, por outro lado, permite percorrer o código, definir pontos de interrupção e avaliar expressões - coisas que lhe dão uma chance de lutar contra bugs mais esquivos.

Veja Também