Comment déboguer un script shell?

Comment déboguer un script shell?

Le débogage est le processus de recherche et de résolution des bogues dans un programme informatique. Il fournit une sortie énorme lors de l'exécution pour analyser chaque partie de l'exécution. Ce qui aide à identifier la cause profonde de toute erreur dans le script. Dans ce tutoriel, vous apprendrez à déboguer un script shell sur la ligne de commande Linux.

Nous pouvons déboguer un script shell de deux manières. Ajoutez les instructions de débogage dans le script shell en utilisant "Set -xv" ou en utilisant -xv sur la ligne de commande lors de l'exécution du script.

Ajout d'instructions de débogage dans le script shell

Créons un petit script pour tester le processus de débogage. Créez un nouveau fichier et modifiez dans l'éditeur de texte:

nano checkdebug.shot  

Ajoutez le contenu suivant dans le fichier:

#!/ bin / bash set -xv # Cela permettra de debug cd / var / log / for i in "*.journal "; do -sh $ j'ai fait
1234567#!/ bin / bash set -xv # Cela permettra de debugcd / var / log / pour i in "*.journal "; do -sh $ idone

Enregistrer les modifications et fermer le fichier.

Définissez ensuite les autorisations d'exécution sur le fichier, puis exécutez-la.

chmod + x checkdebug.shot  ./ CheckDebug.shot  

[Exemple de sortie]

cd / var / log / + cd / var / log / pour i dans "*.journal "; do -sh $ j'ai fait + pour je dans '" *.journal "'+ du-shot.journal mysqld.journal post111.journal post1121.bûche.BORD 0 BOOT.journal 32k mysqld.journal 0 post111.journal 0 post1121.journal 4.0k yum.enregistrer 

Fournir des instructions de débogage de la ligne de commande

En utilisant cette option, nous n'avons pas besoin d'ajouter «set -xv» dans le script shell. Créez simplement un script shell comme ci-dessous

nano checkdebug2.shot  
#!/ bin / bash cd / var / log / pour i dans "*.journal "; do -sh $ j'ai fait
123456#!/ bin / bash cd / var / log / pour i dans "*.journal "; do -sh $ idone

et exécuter comme ci-dessous

sh -xv checkdebug2.shot  

[Exemple de sortie]

#!/ bin / bash cd / var / log / + cd / var / log / pour i in "*.journal "; do -sh $ j'ai fait + pour je dans '" *.journal "'+ du-shot.journal mysqld.journal post111.journal post1121.bûche.BORD 0 BOOT.journal 32k mysqld.journal 0 post111.journal 0 post1121.journal 4.0k yum.enregistrer