Para depurar um script Bash, que estou assumindo acima, na verdade, é Bash, simplesmente execute-o assim:
$ bash -x <script.sh>
Você também pode ativar a desativação da mensagem de depuração adicionando set -x
e set +x
em torno de blocos de código nos quais deseja ver informações mais detalhadas.
Exemplo
#!/bin/bash
echo "msg1"
echo "msg2"
set -x
echo "msg3"
echo "msg4"
set +x
echo "msg5"
Então, quando eu executo:
$ ./my.sh
msg1
msg2
+ echo msg3
msg3
+ echo msg4
msg4
+ set +x
msg5
Podemos ver quais comandos estão sendo executados na saída acima. O comando é exibido com um sinal de mais, prefixando o comando, seguido por sua saída.
+ echo msg3
msg3
Apenas o bloco de comandos agrupados dentro dos comandos set ..
é exibido assim.