La création de scripts shell est l’une des compétences les plus essentielles que les utilisateurs de Linux devraient avoir au bout de leurs doigts. Les scripts shell jouent un rôle énorme dans l’automatisation des tâches répétitives qui autrement seraient fastidieuses à exécuter ligne par ligne.

Dans ce didacticiel, nous mettons en évidence certaines des opérations de script shell de base que chaque utilisateur Linux devrait avoir.

1. Créez un script Shell simple

Un script shell est un fichier qui comprend ASCII texte. Nous allons commencer par créer un simple script shell, et pour ce faire, nous utiliserons un éditeur de texte. Il existe un certain nombre de éditeurs de texte, à la fois en ligne de commande et en interface graphique. Pour ce guide, nous utiliserons le éditeur vim.

Nous allons commencer par créer un script simple qui affiche « Bonjour le monde”Lors de l’exécution.

$ vim hello.sh

Collez le contenu suivant dans le fichier et enregistrez-le.

Publicité
#!/bin/bash
# Print Hello world message
echo "Hello World!"

Passons en revue le script shell ligne par ligne.

  • La première ligne – #!/bin/bash – est connu sous le nom d’en-tête shebang. C’est une construction spéciale qui indique quel programme sera utilisé pour interpréter le script. Dans ce cas, ce sera le frapper coque indiquée par / bin / bash. Il existe d’autres langages de script tels que Python qui est désigné par #!/usr/bin/python3 et Perl dont l’en-tête shebang est désigné par #!/usr/bin/perl.
  • La deuxième ligne est un commentaire. Un commentaire est une instruction qui décrit ce que fait un script shell et qui n’est pas exécuté lorsque le script est exécuté. Les commentaires sont toujours précédés du signe dièse #.
  • La dernière ligne est la commande qui imprime le ‘Bonjour le monde‘message sur le terminal.

L’étape suivante consiste à rendre le script exécutable en attribuant l’autorisation d’exécution à l’aide de chmod commande comme indiqué.

$ chmod +x  hello.sh

Enfin, exécutez le script shell en utilisant l’une des commandes:

$ bash hello.sh
OR
$ ./hello.sh
Créer Un Script Shell Hello World
Créer Un Script Shell Hello World
Créer Un Script Shell Hello World

2. Utilisation d’instructions conditionnelles pour exécuter du code

Comme d’autres langages de programmation, expressions conditionnelles sont utilisés dans les scripts bash pour prendre des décisions, avec seulement une légère variation dans la syntaxe. Nous allons couvrir le si, sinon, et elif expressions conditionnelles.

Exemple d’instruction if uniquement

le si L’instruction peut être utilisée pour tester des conditions uniques ou multiples. Nous commencerons par l’utilisation fondamentale du si instruction pour tester une seule condition. le si l’instruction est définie par if ... fi blocs.

if command
then
  statement
fi

Jetons un coup d’œil au script shell ci-dessous.

#!/bin/bash
echo 'Enter the score'
read x

if [[ $x == 70 ]]; then
  echo 'Good job!'
fi

Le script shell ci-dessus invite l’utilisateur à fournir un score qui est ensuite stocké dans une variable X. Si le score correspond à 70, le script renvoie la sortie « Bon travail!». L’opérateur de comparaison == permet de tester si le score saisi, qui est stocké dans la variable X, est équivalent à 100.

Instruction If Dans Le Script Shell
Instruction If Dans Le Script Shell
Instruction If Dans Le Script Shell

Les autres opérateurs de comparaison que vous pouvez utiliser incluent:

  • -eq – Égal à
  • -ne – Pas égal à
  • -lt – Moins que
  • -le – Inférieur ou égal à
  • -lt – Moins que
  • -ge – Plus grand ou égal à

Par exemple, le instruction if bloc ci-dessous imprime ‘Travailler plus dur‘si le score d’entrée est une valeur inférieure à 50.

if [[ $x -lt 50 ]]; then
  echo 'Work Harder!'
fi
Instruction If Dans Le Script Shell
Instruction If Dans Le Script Shell
Instruction If Dans Le Script Shell

Exemple d’instruction if-else

Pour les situations où vous avez 2 résultats possibles: – que ce soit ceci ou cela – l’instruction if-else est pratique.

if command
then
  statement1
else
  statement2
fi

Le script ci-dessous lit le score d’entrée et vérifie s’il est supérieur ou égal à 70.

Si le score est supérieur ou égal à 70, vous obtenez un ‘Excellent travail, vous avez réussi!‘ message. Cependant, si le score tombe en dessous 70, le résultat ‘Vous avez échoué‘sera imprimé.

#!/bin/bash

echo 'Enter the score'

read x

if [[ $x -ge 70 ]]; then
  echo 'Great job, You passed!'
else
  echo  'You failed'
fi
Instruction If-Else Dans Le Script Shell
Instruction If-Else Dans Le Script Shell
Instruction If-Else Dans Le Script Shell

Exemple d’instruction if-elif-else

Dans les scénarios où il y a plusieurs conditions et différents résultats, le if-elif-else instruction est utilisée. Cette instruction prend le format suivant.

if condition1
then
  statement1
elif condition2
then
  statement2
else
  statement3
fi

Par exemple, nous avons un script pour une loterie qui vérifie si le numéro entré est soit 90, 60 ou 30.

#!/bin/bash

echo 'Enter the score'

read x

if [[ $x -eq 90 ]];
then
  echo “You have won the First Prize”

elif [[ $x -eq 60 ]];
then
  echo “You have won the Second Prize”

elif [[ $x -eq 30 ]];
then 
  echo “You have won the Second Prize”
else
  echo “Please try again”
fi
Instruction If-Elif-Else
Instruction If-Elif-Else
Instruction If-Elif-Else

3. Utilisation de l’instruction If avec la logique AND

Vous pouvez utiliser le si déclaration à côté de la ET opérateur logique pour exécuter une tâche si deux conditions sont remplies. le && l’opérateur est utilisé pour désigner le ET logique.

#!/bin/bash

echo 'Please Enter your user_id'
read user_id

echo 'Please Enter your tag_no'
read tag_id

if [[ ($user_id == “tecmint” && $tag_id -eq 3990) ]];
then
  echo “Login successful”
else
  echo “Login failure”
fi

5. Utilisation de l’instruction If avec la logique OR

Lors de l’utilisation du OU logique, qui est représentée par || symbole, l’une ou l’autre des conditions doit être satisfaite avec le script pour donner les résultats attendus.

#!/bin/bash

echo 'Please enter a random number'
read number

if [[ (number -eq 55 || number -eq 80) ]];
then
 echo 'Congratulations! You’ve won'
else
 echo 'Sorry, try again'
fi
Instruction If Avec Logique Or
Instruction If Avec Logique Or
Instruction If Avec Logique Or

Utiliser des constructions en boucle

Frapper boucles permettre aux utilisateurs d’effectuer une série de tâches jusqu’à ce qu’un certain résultat soit atteint. Cela est pratique pour effectuer des tâches répétitives. Dans cette section, nous allons avoir un aperçu de certaines des boucles que vous trouverez également dans d’autres langages de programmation.

Alors que la boucle

C’est l’une des boucles les plus faciles à utiliser. La syntaxe est assez simple:

while  
do
 commands
done

La boucle while ci-dessous répertorie tous les nombres de 1 à 10 lors de l’exécution.

#!/bin/bash
# A simple while loop
counter=1
while [ $counter -le 10 ]
 do
echo $counter
 ((counter++))
done

Disséquons la boucle while:

La variable compteur est initialisé à 1. Et tandis que la variable est inférieure ou égale à dix, la valeur du compteur sera incrémentée jusqu’à ce que la condition soit satisfaite. La ligne echo $ compteur imprime tous les nombres de 1 à 10.

Boucle While Dans Le Script Shell
Boucle While Dans Le Script Shell
Boucle While Dans Le Script Shell

Pour boucle

Comme le temps boucle, une pour boucle est utilisé pour exécuter du code de manière itérative. C’est-à-dire répéter l’exécution du code autant de fois que possible défini par l’utilisateur.

La syntaxe est:

for var in 1 2 3 4 5 N
do
 command1
 command2
done

le pour boucle ci-dessous itère de 1 à 10 et traite leurs valeurs à l’écran.

Boucle For Dans Le Script Shell
Boucle For Dans Le Script Shell
Boucle For Dans Le Script Shell

Une meilleure façon d’y parvenir est de définir une plage à l’aide des doubles accolades. { } comme indiqué au lieu de taper tous les nombres.

#!/bin/bash
# Specify range in a for loop

for num in {1..10}
do
  echo $num
done

Paramètres de position Bash

Un paramètre de position est une variable spéciale qui est référencée dans le script lorsque des valeurs sont transmises au shell mais ne peuvent pas être affectées. Les paramètres de position partent de 0 $ 1 $ 2 $ 3 $ …… à 9 $. Au-delà de 9 $ valeur, les paramètres doivent être placés entre accolades, par exemple $ {10}, $ {11}… etc.

Lors de l’exécution du script, le premier paramètre de position qui est 0 $ prend le nom du script shell. le 1 $ paramètre prend la première variable qui est passée sur le terminal, 2 $ prend le second, 3 $ le troisième et ainsi de suite.

Créons un script test.sh comme indiqué.

#!/bin/bash
echo "The name of the script is: " $0
echo "My first name is: " $1
echo "My second name is: " $2

Ensuite, exécutez le script et indiquez le premier et le deuxième nom comme arguments:

# bash test.sh James Kiarie
Paramètre De Position Bash
Paramètre De Position Bash
Paramètre De Position Bash

À partir de la sortie, nous pouvons voir que la première variable qui est imprimée est le nom du script shell, dans ce cas, test.sh. Ensuite, les noms sont imprimés en fonction des paramètres de position définis dans le script shell.

Les paramètres de position sont utiles dans la mesure où ils vous aident à personnaliser les données saisies au lieu d’attribuer explicitement une valeur à une variable.

Codes de sortie de la commande Shell

Commençons par répondre à une question simple, qu’est-ce qu’un code de sortie?

Chaque commande exécutée sur le shell par un utilisateur ou un script shell a un statut de sortie. Un état de sortie est un entier.

Un état de sortie de 0 implique que la commande a été exécutée avec succès sans aucune erreur. N’importe quoi entre 1 à 255 indique que la commande a échoué ou ne s’est pas exécutée avec succès.

Pour trouver l’état de sortie d’une commande, utilisez le $? Variable Shell.

Un statut de sortie de 1 indique une erreur générale ou des erreurs non autorisées telles que la modification de fichiers sans autorisations sudo.

Un état de sortie de 2 indique une utilisation incorrecte d’une commande ou d’une variable shell intégrée.

L’état de sortie 127 pointe vers une commande illégale qui produit généralement le ‘commande non trouvée‘ Erreur.

Rechercher L'État De Sortie De La Commande
Rechercher L'État De Sortie De La Commande
Rechercher L’état De Sortie De La Commande

Traitement de la sortie des commandes Shell dans un script

Dans les scripts bash, vous pouvez stocker la sortie d’une commande dans une variable pour une utilisation future. Ceci est également appelé substitution de commande shell et peut être réalisé des manières suivantes.

variable=$(command)
OR
variable=$(/path/to/command)
OR
variable=$(command argument 1 argument 2 ...)

Par exemple, vous pouvez stocker le Date commande dans une variable appelée aujourd’hui et appelez le script shell pour révéler la date actuelle.

#!/bin/bash

today=$(date)

echo “Today is $today”
Imprimer La Date À L'Aide Du Script Shell
Imprimer La Date À L'Aide Du Script Shell
Imprimer La Date À L’aide Du Script Shell

Prenons un autre exemple. Supposons que vous souhaitiez trouver les utilisateurs de connexion valides sur votre système Linux. Comment procéderiez-vous? Tout d’abord, la liste de tous les utilisateurs (utilisateurs système, processus et connexion) est stockée dans le / etc / passwd fichier.

Pour afficher le fichier, vous devez utiliser le commande de chat. Cependant, pour restreindre la connexion des utilisateurs, utilisez le commande grep pour rechercher des utilisateurs avec / bin / bash attribut et utilisez le coupe -c 1-10 comme indiqué pour afficher les 10 premiers caractères des noms.

Nous avons stocké le commande de chat à la login_users variable.

#!/bin/bash
login_users=$(cat /etc/passwd | grep /bin/bash | cut -c 1-10)
echo 'This is the list of login users:
echo $login_users
Liste Des Utilisateurs Connectés
Liste Des Utilisateurs Connectés
Liste Des Utilisateurs Connectés

Cela met fin à notre didacticiel sur la création de scripts shell simples. Nous espérons que vous avez trouvé cela utile.

.

Rate this post
Publicité
Article précédentLes futurs propriétaires de téléphones Pixel ne peuvent pas conserver un accès illimité au stockage Google Photos
Article suivantMise en œuvre de la phase de découverte
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici