Comment activer le mode de débogage du script shell dans Linux

Comment activer le mode de débogage du script shell dans Linux

Un script est simplement une liste de commandes stockées dans un fichier. Au lieu d'exécuter une séquence de commandes en les tapant un par un tout le temps sur le terminal, un utilisateur système peut les stocker toutes (commandes) dans un fichier et invoque à plusieurs reprises le fichier pour réexécuter les commandes plusieurs fois.

Lors de l'apprentissage des scripts ou pendant les premiers stades des scripts d'écriture, nous commençons normalement par écrire des scripts petits ou courts avec quelques lignes de commandes. Et nous déboguons généralement de tels scripts en ne faisant rien de plus que de regarder leur production et de nous assurer qu'ils fonctionnent comme nous le voulions.

Cependant, alors que nous commençons à écrire des scripts très longs et avancés avec des milliers de lignes de commandes, par exemple des scripts qui modifient les paramètres du système, effectuent des sauvegardes critiques sur les réseaux et bien d'autres, nous réaliserons que la seule sortie de la sortie d'un script n'est pas assez pour trouver des bugs dans un script.

Par conséquent, dans ce débogage de script de shell dans la série Linux, nous allons expliquer comment permettre le débogage du script de shell, se déplacer pour expliquer les différents modes de débogage du script de shell et comment les utiliser dans la série suivante.

Comment démarrer un script

Un script se distingue des autres fichiers par sa première ligne, qui contient un #! (Case - Définit le type de fichier) et un nom de chemin (chemin vers l'interpréteur) qui informe le système que le fichier est une collection de commandes qui seront interprétées par le programme spécifié (interprète).

Vous trouverez ci-dessous des exemples des «premières lignes» dans différents types de scripts:

#!/ bin / sh [pour shot script] #!/ bac / bash [pour frapper script] #!/ usr / bin / perl [pour perler la programmation] #!/ bin / awk -f [pour awk script] 

Note: La première ligne ou #! peut être laissé de côté si un script ne contient que d'un ensemble de commandes système standard, sans aucune directive de shell interne.

Comment exécuter un script shell dans Linux

La syntaxe conventionnelle pour invoquer un script shell est:

$ script_name argument1… argumentn 

Un autre formulaire possible est en spécifiant clairement le shell qui exécutera le script comme ci-dessous:

$ shell script_name argument1… argumentn 

Par exemple:

$ / bin / bash script_name argument1… argumentn [pour frapper scripting] $ / bin / ksh script_name argument1… argumentn [pour ksh scripting] $ / bin / sh script_name argument1… argumentn [pour shot script] 

Pour les scripts qui n'ont pas #! comme la première ligne et ne contiennent que des commandes système de base telles que celle ci-dessous:

#Script contenant des commandes système standard cd / home / $ utilisateur mkdir tmp echo "répertoire tmp créé sous / home / $ utilisateur" 

Faites simplement l'exécutable et exécutez-le comme suit:

$ chmod + x script_name $ ./ script_name 

Méthodes pour permettre le mode de débogage du script de shell

Vous trouverez ci-dessous les options de débogage du script de shell principal:

  1. -V (abréviation de Verbose) - dit au shell de montrer toutes les lignes dans un script pendant qu'ils sont lus, il active le mode verbeux.
  2. -n (abréviation de noexec ou non ecxEcution) - Instruise le shell Lire toutes les commandes, mais ne les exécute pas. Ces options active le mode de vérification de la syntaxe.
  3. -X (abréviation de xtrace ou de trace d'exécution) - dit au shell d'afficher toutes les commandes et leurs arguments sur le terminal pendant qu'ils sont exécutés. Cette option permet le mode de traçage des coquilles.

1. Modification de la première ligne d'un script shell

Le premier mécanisme est en modifiant la première ligne d'un script de shell comme ci-dessous, cela permettra le débogage de l'ensemble du script.

#!/ Bin / SH Option (s) 

Dans le formulaire ci-dessus, l'option peut être une ou une combinaison des options de débogage ci-dessus.

2. Invoquer la coquille avec des options de débogage

La seconde est en invoquant le shell avec des options de débogage comme suit, cette méthode allumera également le débogage de l'ensemble du script.

$ Shell Option (s) script_name argument1… argumentn 

Par exemple:

$ / bin / bash option (s) script_name argument1… argumentn 

3. Utilisation de la commande intégrée Shell Shell

La troisième méthode consiste à utiliser la commande intégrée set pour déboguer une section donnée d'un script shell tel qu'une fonction. Ce mécanisme est important, car il nous permet d'activer le débogage à n'importe quel segment d'un script shell.

Nous pouvons activer le mode de débogage en utilisant ensemble Commande dans le formulaire ci-dessous, où l'option est l'une des options de débogage.

$ Set Option 

Pour activer le mode de débogage, utilisez:

$ set-option 

Pour désactiver le mode de débogage, utilisez:

$ set + option 

De plus, si nous avons activé plusieurs modes de débogage dans différents segments d'un script shell, nous pouvons les désactiver tous à la fois comme ça:

$ set - 

C'est tout pour l'instant avec l'activation du mode de débogage du script de shell. Comme nous l'avons vu, nous pouvons soit déboguer un script de shell entier ou une section particulière d'un script.

Dans les deux prochains épisodes de cette série, nous couvrirons comment utiliser les options de débogage du script Shell pour Expliquer Verbose, Vérification de la syntaxe et Débogage du traçage des obus Modes avec des exemples.

Surtout, n'oubliez pas de poser des questions sur ce guide ou peut-être nous fournir des commentaires via la section des commentaires ci-dessous. Jusque-là, restez connecté à Tecmint.