Comment exécuter une commande avec un script Shell sous Linux
Introduction
Le shell est un interpréteur en ligne de commande qui permet à l'utilisateur d'interagir avec le système. Il est responsable de la prise des entrées de l'utilisateur et de l'affichage de la sortie.
Les scripts Shell sont une série de commandes écrites dans l'ordre d'exécution. Ces scripts peuvent contenir des fonctions, des boucles, des commandes et des variables. Les scripts sont utiles pour simplifier une série complexe de commandes et des tâches répétitives.
Dans cet article, vous apprendrez comment créer et exécuter des scripts shell pour la ligne de commande sous Linux.
Prérequis
Pour compléter ce tutoriel, vous aurez besoin de :
- Familiarité avec l'utilisation du terminal.
- Familiarité avec un éditeur de texte.
- Familiarité avec des commandes comme
chmod,mkdiretcd.
Commencer
Un script shell doit être enregistré avec l'extension .sh.
Le fichier doit commencer par la ligne shebang (#!) pour permettre au système Linux de savoir quel interpréteur utiliser pour le script shell.
Pour les environnements qui prennent en charge bash, utilisez :
#!/bin/bash Pour les environnements qui prennent en charge shell, utilisez :
#!/bin/shCe tutoriel suppose que votre environnement prend en charge bash.
Les scripts Shell peuvent également contenir des commentaires pour augmenter la lisibilité. Un bon script contient toujours des commentaires qui aident le lecteur à comprendre exactement ce que le script fait et le raisonnement derrière un choix de conception.
Créer et exécuter un script shell de base
Vous pouvez créer un script shell en utilisant l'éditeur vi, une commande cat ou un éditeur de texte.
Pour ce tutoriel, vous apprendrez à créer un script shell avec vi :
vi basic_script.shCela lance l'éditeur vi et crée un fichier basic_script.sh.
Ensuite, appuyez sur i sur le clavier pour commencer le MODE INSERTION. Ajoutez les lignes suivantes :
#!/bin/bash
whoami
date
Ce script exécute les commandes whoami et date. whoami affiche le nom d'utilisateur actif. date affiche le timestamp actuel du système.
Pour enregistrer et quitter l'éditeur vi :
- Appuyez sur
ESC - Tapez
:(caractère deux-points) - Tapez
wq - Appuyez sur
ENTRÉE
Enfin, vous pouvez exécuter le script avec la commande suivante :
bash basic_script.shVous pouvez obtenir une sortie qui ressemble à ce qui suit :
root
Fri Jun 19 16:59:48 UTC 2020La première ligne de sortie correspond à la commande whoami. La deuxième ligne de sortie correspond à la commande date.
Vous pouvez également exécuter un script sans spécifier bash :
./basic_script.sh Exécuter le fichier de cette manière pourrait nécessiter que l’utilisateur donne d’abord son autorisation. L’exécuter avec bash ne nécessite pas cette autorisation.
~bash: ./basic_script.sh: Permission deniedLa commande bash filename ne nécessite que la permission de lecture du fichier.
Alors que la commande ./filename exécute le fichier en tant que programme exécutable et nécessite la permission d'exécution.
Pour exécuter le script, vous devrez mettre à jour les autorisations.
chmod +x basic_script.sh
Cette commande applique chmod et donne les permissions x (exécutable) à l'utilisateur actuel.
Utilisation des variables dans les scripts shell
Les scripts peuvent inclure des variables définies par l'utilisateur. En fait, à mesure que les scripts deviennent plus volumineux, il est essentiel d'avoir des variables clairement définies et ayant des noms auto-descriptifs.
Ajoutez les lignes suivantes au script :
#!/bin/bash
# This is a comment
# defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGSGREETINGS est la variable définie et ensuite accédée en utilisant $ (symbole du signe dollar). Il ne doit y avoir aucun espace dans la ligne où les variables se voient attribuer une valeur.
Exécutez le script :
bash basic_script.shCeci affiche la valeur assignée à la variable :
Hello! How are youLorsque le script est exécuté, GREETINGS est défini et accédé.
Lecture des entrées depuis la ligne de commande
Les scripts Shell peuvent être rendus interactifs avec la capacité d'accepter des entrées depuis la ligne de commande. Vous pouvez utiliser la commande read pour stocker l'entrée de la ligne de commande dans une variable.
Ajoutez les lignes suivantes au script :
#!/bin/bash
# This is a comment
# defining a variable
echo "What is your name?"
# reading input
read NAME
# defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS Une variable NAME a été utilisée pour accepter l'entrée depuis la ligne de commande. Ce script attend que l'utilisateur fournisse une entrée pour NAME. Ensuite, il affiche NAME et GREETINGS.
What is your name?
Sammy
Sammy Hello! How are youDans cet exemple, l'utilisateur a fourni l'invite avec le nom : Sammy.
Définir des fonctions
Les utilisateurs peuvent définir leurs propres fonctions dans un script. Ces fonctions peuvent prendre plusieurs arguments.
Ajoutez les lignes suivantes au script :
#!/bin/bash
#This is a comment
# defining a variable
echo "What is the name of the directory you want to create?"
# reading input
read NAME
echo "Creating $NAME ..."
mkcd ()
{
mkdir "$NAME"
cd "$NAME"
}
mkcd
echo "You are now in $NAME"Ce script demande à l'utilisateur un nom de répertoire. Ensuite, il utilise mkdir pour créer le répertoire et cd pour y entrer.
What is the name of the directory you want to create?
test_dir
Creating test_dir ...
You are now in test_dirDans cet exemple, l'utilisateur a fourni l'invite avec l'entrée : test_dir. Ensuite, le script crée un nouveau répertoire avec ce nom. Enfin, le script change le répertoire de travail actuel de l'utilisateur en test_dir.
Conclusion
Dans cet article, vous avez appris comment créer et exécuter des scripts shell pour la ligne de commande sous Linux.
Considérez certaines tâches répétitives ou chronophages que vous effectuez fréquemment et qui pourraient bénéficier d'un script.
Continuez votre apprentissage avec if-else, les tableaux et les arguments dans la ligne de commande.
