GNU/Linux >> Tutoriels Linux >  >> Linux

Que sont les scripts shell ? Comment créer des scripts shell ?

Qu'est-ce qu'un shell ?

Un shell est un programme qui fournit une interface entre un utilisateur et un noyau de système d'exploitation (OS). Un système d'exploitation démarre un shell pour chaque utilisateur lorsque l'utilisateur se connecte ou ouvre une fenêtre de terminal ou de console.

Qu'est-ce qu'un script shell ?

Un script shell est un fichier qui contient des commandes shell et UNIX. Semblable aux programmes exécutables compilés, le script shell a un objectif spécifique et est réutilisable. Lorsque les commandes du script shell sont ordonnées et sans erreur, vous pouvez exécuter le script shell pour effectuer les tâches efficacement.

Tous les scripts, programmes et procédures utilisent les règles suivantes :

  • Ils doivent s'exécuter sans erreur.
  • Ils exécutent la tâche pour laquelle ils sont destinés.
  • Ils s'assurent que la logique du programme est clairement définie ou apparente.
  • Ils ne doivent pas incorporer de travail inutile.

Créer des scripts shell

Un script shell est un fichier texte qui contient une séquence de commandes UNIX. Le script shell est souvent une séquence de commandes dont vous avez une utilisation répétée. En règle générale, vous exécutez la séquence de commandes dans le script shell en saisissant le nom du script shell sur la ligne de commande.

Pour créer un script shell, créez un fichier et placez-y des commandes UNIX. Les commandes UNIX incluent des utilitaires standard, des programmes utilisateur et les noms d'autres scripts dont vous avez besoin pour accomplir votre tâche.

Remarque – Si vous mettez les noms d'autres scripts dans votre script, assurez-vous qu'ils disposent des droits de lecture et d'exécution pour qu'ils s'exécutent.

Un fichier de script peut avoir n'importe quel nom suivant les conventions des noms de fichiers normaux dans l'environnement du système d'exploitation. Lorsque vous nommez vos programmes shell, vous devez éviter d'utiliser des noms qui entrent en conflit avec des commandes UNIX ou des fonctions shell existantes.

L'exemple de script suivant utilise la commande echo pour informer l'utilisateur de la sortie à attendre avant que la commande réelle qui crée la sortie ne soit appelée. Lors de l'écriture de scripts, il est recommandé d'informer les utilisateurs de ce qui se passe afin qu'ils sachent si le script s'exécute correctement.

# vi my_script.sh
#!/bin/sh
clear
echo "SCRIPT BEGINS"
echo "Hello $LOGNAME!"

Exécuter un script shell

Pour exécuter un script shell comme vous exécutez d'autres commandes sur le système, attribuez-lui d'abord l'autorisation d'exécution avec la commande chmod ; par exemple :

# chmod +x my_script.sh

Il s'agit de la méthode préférée et la plus courante pour exécuter un script shell. Un sous-shell est créé pour exécuter le script spécifié. N'accordez l'autorisation d'exécution qu'aux utilisateurs qui doivent exécuter le script.

Lorsqu'un script est exécuté dans un sous-shell, les variables, alias et fonctions créés et utilisés dans le script ne sont connus que dans le sous-shell. Une fois le script terminé et le contrôle revenu au shell parent, les variables, les fonctions et les autres modifications apportées à l'état du shell par le script ne sont plus connues.

L'exemple suivant exécute le script dans le shell actuel :

# . ./my_script.sh

L'exemple suivant montre l'exécution d'un script avec débogage :

# sh -x my_script.sh

Exécutons le script que nous avons créé dans la section ci-dessus et voyons s'il produit le bon résultat.

sh my_script.sh
SCRIPT BEGINS
Hello root!

Démarrer un script avec le # ! Personnages

Lorsque vous exécutez un script disposant d'une autorisation d'exécution en saisissant le nom du script sur la ligne de commande, vous devez connaître le sous-shell (sh, csh, ksh, bash ou d'autres sous-shells) qui exécutera le script.

La première ligne du script détermine le shell qui est créé en tant qu'interpréteur du script. Les deux premiers caractères de la première ligne d'un script sont #!. Le shell actuel interprète ce qui suit comme le nom du chemin du sous-shell pour exécuter le script.

Remarque – "Les deux premiers caractères de la première ligne" signifie qu'il ne doit pas y avoir de lignes blanches ou d'espaces avant ces caractères.

Dans les exemples suivants, le shell spécifié est dupliqué en tant que sous-shell pour exécuter le script.

#!/bin/sh 
#!/bin/csh 
#!/bin/ksh

Mettre des commentaires dans un script

Les personnes qui écrivent des scripts ne sont généralement pas les seules à les lire. De nombreuses personnes exécutent des scripts écrits par d'autres. S'ils consultent le contenu du fichier de script pour voir ce que fait le script, il est utile que l'auteur du script inclue des explications dans les commentaires.

C'est une bonne pratique de mettre des commentaires dans les programmes et les scripts shell. Les commentaires doivent expliquer le but du script et doivent expliquer toutes les lignes spécifiques qui pourraient être particulièrement déroutantes.

L'exemple de script, my_script.sh illustré ci-dessous, comporte un commentaire au début du script expliquant ce que fait le script lorsqu'il s'exécute.

# cat my_script.sh
#!/bin/sh

# This script clears the window, greets the user.

clear
echo "SCRIPT BEGINS"

echo "Hello $LOGNAME!"

L'ajout de commentaires n'affecte pas l'exécution du script sauf si une erreur syntaxique est introduite lors de l'ajout des commentaires. Les commentaires sont là à des fins de documentation, donc quelqu'un qui lit le script aura une idée de ce qui se passera lorsque le script sera exécuté.

Les commentaires sont parfois les premières lignes saisies dans un script shell. Les commentaires peuvent lister les opérations étape par étape qui doivent avoir lieu. Faites suivre chaque ligne de commentaire par les commandes du système d'exploitation pour effectuer l'opération.

UNIX / Linux :Qu'est-ce qu'un Shell ? Quels sont les différents shells ?
Comment déboguer les scripts shell


Linux
  1. Comment créer un script d'une commande Linux

  2. Comment créer un fichier temporaire en script shell ?

  3. Masquer le mot de passe dans les scripts shell ?

  4. Comment créer une crontab via un script

  5. Comment exécuter un script shell au démarrage

Comment écrire un script shell dans Ubuntu

Qu'est-ce que Shebang dans Linux Shell Scripting ?

Comment utiliser if-else dans les scripts shell ?

Comment exécuter une commande dans un script shell ?

Comment créer et exécuter un script shell dans Ubuntu 22.04

Comment créer un script de configuration ?