Como depurar um script de shell?

Como depurar um script de shell?

A depuração é o processo de encontrar e resolver bugs em um programa de computador. Ele fornece uma produção enorme no tempo de execução para analisar cada parte da execução. O que ajuda a identificar a causa raiz de qualquer erro no script. Neste tutorial, você aprenderá como depurar um script de shell na linha de comando Linux.

Podemos depurar um script de shell de duas maneiras. Adicione a instrução de depuração no script do shell usando “Set -xv” ou usando -xv na linha de comando enquanto executa o script.

Adicionando instruções de depuração no script de shell

Vamos criar um pequeno script para testar o processo de depuração. Crie um novo arquivo e edite no editor de texto:

Nano Checkdebug.sh  

Adicione o seguinte conteúdo ao arquivo:

#!/Bin/Bash Conjunto -xv # Isso permitirá CD/var/log/para i em "**.log "; do du -sh $ eu fiz
1234567#!/Bin/Bash Conjunto -xv # Isso permitirá Debugcd/var/log/for i in "*.log "; do du -sh $ idone

Salvar alterações e fechar o arquivo.

Em seguida, defina as permissões de execução em arquivo e depois execute -as.

chmod +x checkdebug.sh  ./checkdebug.sh  

[Saída de amostra]

cd/var/log/ + cd/var/log/for i in "*.log "; do du -sh $ eu fiz + para i em '"*.log "' + du -sh bota.Log MySqld.LOG POST111.LOG POST1121.Log Yum.Log 0 inicialização.Log 32K MySqld.LOG 0 POST111.LOG 0 POST1121.log 4.0k yum.registro 

Forneça instruções de depuração da linha de comando

Usando esta opção, não precisamos adicionar "set -xv" no script shell. Basta criar um script de shell como abaixo

Nano CheckDebug2.sh  
#!/bin/bash cd/var/log/for i in "*.log "; do du -sh $ eu fiz
123456#!/bin/bash cd/var/log/for i in "*.log "; do du -sh $ idone

e executar como abaixo

sh -xv checkDebug2.sh  

[Saída de amostra]

#!/bin/bash cd/var/log/ + cd/var/log/for i in "*.log "; do du -sh $ eu fiz + para i em '"*.log "' + du -sh bota.Log MySqld.LOG POST111.LOG POST1121.Log Yum.Log 0 inicialização.Log 32K MySqld.LOG 0 POST111.LOG 0 POST1121.log 4.0k yum.registro