cours
Comment écrire un script Bash : Un simple tutoriel sur les scripts Bash
Un shell est un type de programme informatique qui présente une interface avec le système d'exploitation. Le nom shell vient du fait qu'il s'agit de la couche la plus externe du système d'exploitation.
Pour gérer l'interaction entre les utilisateurs et le système d'exploitation, l'interpréteur de commandes demande une entrée, puis l'interprète pour le système d'exploitation avant de traiter toutes les sorties qu'il reçoit. Ces données peuvent être fournies via une interface de ligne de commande (CLI) ou une interface utilisateur graphique (GUI), en fonction de l'opération et du rôle de l'ordinateur.
Consultez notre article " Qu'est-ce qu'une coquille ?" pour en savoir plus sur ce qu'est une coquille et sur la manière dont elle peut vous aider.
Essentiellement, un shell permet aux utilisateurs et aux autres programmes de communiquer directement avec les composants d'un système d'exploitation.
Une introduction aux scripts Shell
Les scripts Shell constituent un élément important et facile à apprendre (même si vous n'avez pas de formation en programmation) de la communication avec le système d'exploitation d'un ordinateur. Par script, nous entendons une séquence de commandes de l'interpréteur de commandes et du système d'exploitation qui sont écrites puis stockées dans un fichier : les opérations typiques effectuées par les scripts de l'interpréteur de commandes comprennent des tâches telles que la manipulation de fichiers, l'exécution de programmes et l'impression de texte.
Apprenez-en plus sur le traitement des données en Shell avec notre cours.
L'apprentissage de cette procédure simple peut permettre aux développeurs de gagner un temps considérable, car certaines commandes n'auront pas à être écrites manuellement à plusieurs reprises - il est même possible de programmer l'exécution automatique des scripts.
Les utilisateurs d'Unix et de Linux disposent de plusieurs shells différents. Pour la suite de ce tutoriel, nous nous concentrerons spécifiquement sur le Bourne Again SHell (bash), qui est une version améliorée de l'interpréteur de commandes Bourne et l'une des interfaces de ligne de commande les plus courantes pour les systèmes d'exploitation basés sur Unix (y compris Linux).
Qu'est-ce qu'un script Bash ?
Bash est une interface de ligne de commande Unix chargée d'interagir avec le système d'exploitation d'un ordinateur. De la même manière que les scénarios de films indiquent aux acteurs les actions à entreprendre, un script bash indique à l'interpréteur de commandes bash ce qu'il doit faire. Ainsi, un script bash est un moyen utile de regrouper des commandes pour créer un programme.
Toute commande que vous pouvez exécuter directement à partir de la ligne de commande peut être placée dans un script bash, et vous pouvez vous attendre à ce qu'il effectue les mêmes actions qu'à partir de la ligne de commande. Par ailleurs, toute commande que vous entrez dans votre script bash peut être exécutée directement à partir de la ligne de commande, et le résultat devrait être le même. En d'autres termes, si vous savez comment interagir avec votre ordinateur à partir de la ligne de commande, vous connaissez déjà assez bien les scripts bash.
L'une des principales différences est qu'un script bash est un fichier texte brut qui est stocké avec une extension .sh
par convention (ils peuvent toujours être exécutés sans l'extension .sh
).
Une autre caractéristique des scripts bash est le "shebang" qui apparaît sur la première ligne de tous les scripts. Essentiellement, le shebang est un chemin absolu vers l'interpréteur bash composé d'une combinaison de bash "#" et de bang " !" suivi du chemin de l'interpréteur bash. Il est utilisé pour indiquer au système d'exploitation Linux l'interprète à utiliser pour analyser le fichier.
Introduction aux scripts Bash
Comment écrire un script Bash
Nous allons construire un exemple de script bash simple "Hello World" pour vous permettre de commencer à utiliser les scripts bash. Si vous souhaitez approfondir vos connaissances sur les scripts bash, consultez le cours Introduction aux scripts bash.
Étape 1 : Créez un nouveau fichier de texte brut
La première étape consiste à créer un nouveau fichier de texte brut. Vous pouvez le faire en exécutant la commande suivante à partir de votre invite de commande :
notepad hello_world.sh
Note: L'exécution de cette commande peut faire apparaître une invite vous demandant si vous souhaitez créer un nouveau fichier ; sélectionnez "Oui".
Étape 2 : Spécification de l'interprète
Sur la première ligne de notre script, nous devons spécifier l'interpréteur que nous souhaitons utiliser pour analyser notre script. Dans ce cas, il s'agit de Bash. Nous devons donc placer le shebang dans la première ligne de notre script.
#!/bin/bash
Étape 3 : Mettre en œuvre les commandes
Le but de notre script bash est d'imprimer "Hello World !" Pour ce faire, passez à une nouvelle ligne et utilisez la commande echo suivie de la chaîne de caractères que vous souhaitez imprimer.
echo "Hello World!"
Une fois terminé, enregistrez le fichier et ouvrez votre Git Bash.
Note: Vous pouvez télécharger Git Bash à partir des téléchargements Git. Sélectionnez simplement la version de Git qui correspond à votre système d'exploitation.
Ensuite, exécutez la commande suivante :
bash hello_world.sh
Le résultat devrait être "Hello World !", comme le montre la figure 1.
Figure 1: La sortie de notre script Bash
Comment capturer les données de l'utilisateur dans les scripts Bash ?
Vous savez maintenant comment écrire un simple script "Hello World ! Voyons comment nous pouvons utiliser bash pour écrire des scripts qui requièrent une entrée de la part de l'utilisateur. Dans cet exemple, nous allons créer un générateur d'activités qui demandera à l'utilisateur son nom et choisira ensuite une activité aléatoire à laquelle l'utilisateur sera invité à participer à partir d'un tableau d'activités.
Les étapes de création du fichier sont les mêmes que celles décrites dans Comment écrire un script Bash - la différence réside dans les commandes que nous entrons dans notre script Bash.
- Créez un nouveau fichier texte à partir de l'invite de commande en utilisant le bloc-notes.
notepad generate-activity.sh
- Spécifiez l'interpréteur bash en saisissant le shebang dans la première ligne du script.
#!/bin/bash
- Écrivez les commandes pour exécuter le script, puis enregistrez le fichier.
Maintenant, lorsque nous appelons notre script bash à partir du terminal, nous devrions nous attendre à voir la même sortie que dans la Figure 2.
#!/bin/bash
# Greet user and request their name
echo "The activity generator"
read -p "What is your name? " name
# Create an array of activities
activity[0]="Football"
activity[1]="Table Tennis"
activity[2]="8 Ball Pool"
activity[3]="PS5"
activity[4]="Blackjack"
array_length=${#activity[@]} # Store the length of the array
index=$(($RANDOM % $array_length)) # Randomly select an index from 0 to array_length
# Invite the user to join you participate in an activity
echo "Hi" $name, "would you like to play" ${activity[$index]}"?"
read -p "Answer: " answer
2: Démonstration du script generate-activity.sh.
Comment créer une fonction dans un script Bash
En programmation, les fonctions sont utilisées pour regrouper un ensemble d'instructions répétées - en savoir plus sur les fonctions en Python. L'objectif de l'écriture de fonctions est d'éviter d'écrire constamment le même code et de rendre votre code plus lisible.
Une fonction bash peut être considérée comme une fonction typique : un ensemble de commandes qui peuvent être appelées plusieurs fois. Cependant, les fonctions bash sont légèrement plus limitées que celles de la majorité des langages de programmation (c'est-à-dire que les fonctions bash ne vous permettent pas de renvoyer une valeur lorsqu'elles sont appelées).
Avant de créer un script bash à l'aide d'une fonction, examinons la syntaxe de déclaration d'une fonction bash. Nous pouvons définir une fonction en écrivant un nom de fonction, suivi de parenthèses et d'accolades pour le corps de la fonction - c'est la façon la plus courante d'écrire une fonction bash. Voici ce que cela donne en code :
# Most common way to write a bash function.
example_function () {
commands
{
L'autre façon de formater une fonction bash est de commencer la ligne par le mot-clé réservé bash function, puis le nom de la fonction et les accolades pour le corps de la fonction - nous n'avons pas besoin des parenthèses.
# Another way to write a bash function.
function example_function {
commands
{
La définition de la fonction ne permet pas d'exécuter les commandes. Pour invoquer une fonction bash, vous devez appeler le nom de la fonction, comme suit :
#!/bin/bash
# A hello world bash function
hello_world () {
echo "Hello World!"
}
# Invoking the hello_world function
hello_world
Ci-dessus, nous avons créé une fonction hello_world qui imprime "Hello World !" lorsque le script bash est exécuté.
Passer des arguments aux fonctions bash
Les arguments sont des variables utilisées dans une fonction spécifique. En bash, nous ne pouvons pas passer d'arguments aux fonctions comme vous le feriez dans des langages de programmation de haut niveau tels que Python, Julia, etc. Au lieu de cela, les fonctions bash ont leur propre argument de ligne de commande et nous pouvons passer des paramètres à une fonction en les plaçant après un appel au nom de la fonction - séparés par un espace s'il y a plusieurs arguments.
En substance, les arguments de la fonction sont traités comme des paramètres positionnels et les variables shell ($1, $2, ..., $n) sont utilisées pour accéder aux arguments passés à la fonction.
#!/bin/bash
greet () {
echo "Hello $1 $2"
}
greet "John" "Doe"
Dans le script bash ci-dessus, nous avons transmis deux arguments, John et Doe, à notre fonction greet. Lorsque le script bash est exécuté maintenant, nous devrions voir la sortie suivante :
Hello John Doe
Écrire des instructions "If" en Bash
Les instructions "If" sont des instructions conditionnelles utilisées dans les langages de programmation. S'il est prouvé qu'une affirmation est vraie, une condition s'applique. Cette fonctionnalité nous permet de déterminer les circonstances dans lesquelles un certain morceau de code doit être exécuté.
En bash, nous commençons le conditionnel par une instruction if et nous le terminons par fi (if épelé à l'envers). Voici un exemple de script bash avec des conditionnelles if :
#!/bin/bash
read -p "Give me a number: " number
if [ $number -gt 10 ];
then
echo "Your number is greater than 10."
fi
Dans le script bash ci-dessus, l'utilisateur est invité à fournir un numéro. Si le nombre fourni par l'utilisateur est supérieur à 10, le message "Votre nombre est supérieur à 10" sera affiché sur le terminal, mais si ce n'est pas le cas, le programme se terminera. La figure 3 est un exemple de transmission d'un nombre supérieur à 10.
Figure 3: Utilisation des instructions "if" dans les scripts Bash
Synthèse
Les scripts Bash sont un moyen pratique de regrouper des commandes de manière élégante. Vous pouvez exploiter la puissance d'un script bash pour un certain nombre de cas d'utilisation, tels que l'exécution d'une commande shell, l'exécution simultanée de plusieurs commandes, la personnalisation des tâches administratives, l'automatisation des tâches, etc.
En suivant les étapes du tutoriel ci-dessus, vous savez maintenant comment créer un script simple pour imprimer "Hello World !" à l'aide de Bash.
Renforcer les compétences en matière d'apprentissage automatique
Cours sur les scripts Bash
cours
Introduction to Bash Scripting
cours