Comment créer des scripts de coquille simples dans Linux

Comment créer des scripts de coquille simples dans Linux

La création de scripts shell est l'une des compétences les plus essentielles que les utilisateurs de Linux devraient avoir à la pointe de leurs doigts. Les scripts Shell jouent un rôle énorme dans l'automatisation des tâches répétitives qui autrement seraient fastidieuses.

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

1. Créer un script de shell simple

Un script shell est un fichier qui comprend Ascii texte. Nous allons commencer par créer un script de shell simple, et pour ce faire, nous utiliserons un éditeur de texte. Il existe un certain nombre d'éditeurs de texte, à la fois en ligne de commande et en GUI. Pour ce guide, nous utiliserons l'éditeur VIM.

Nous allons commencer par créer un script simple qui affiche "Bonjour le monde"Lorsqu'il est exécuté.

$ vim bonjour.shot 

Collez le contenu suivant dans le fichier et enregistrez.

#!/ bin / bash # imprimer Hello World Message Echo "Hello World!" 

Passons le script shell ligne par ligne.

  • La première ligne - #!/ bac / bash - est connu comme l'en-tête Shebang. Ceci est une construction spéciale qui indique quel programme sera utilisé pour interpréter le script. Dans ce cas, ce sera le frapper Shell indiqué par / bac / bash. Il existe d'autres langages de script tels que Python qui est indiqué par #!/ usr / bin / python3 et Perler dont la tête shebang est indiquée par #!/ usr / bin / perl.
  • La deuxième ligne est un commentaire. Un commentaire est une déclaration qui décrit ce qu'un script shell fait et n'est pas exécuté lorsque le script est exécuté. Les commentaires sont toujours précédés par le signe de hachage #.
  • 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 une autorisation d'exécution à l'aide du chod Commande comme indiqué.

$ chmod + x bonjour.shot 

Enfin, exécutez le script shell en utilisant l'une ou l'autre des commandes:

$ bash bonjour.sh ou $ ./Bonjour.shot 
Créer Hello Hello World Shell Script

2. En utilisant des 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 de la syntaxe. Nous allons couvrir le si, sinon, et Elif expressions conditionnelles.

Exemple d'une instruction IF uniquement

Le si La déclaration peut être utilisée pour tester des conditions uniques ou multiples. Nous allons commencer par l'utilisation fondamentale du si déclaration pour tester une seule condition. Le si La déclaration est définie par le Si… fi blocs.

Si commande alors déclaration fi 

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

#!/ bin / bash echo 'entrez le score' lire x si [[$ x == 70]]; puis faire écho au bon travail!' Fi 

Le script de 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 == est utilisé pour tester si le score entré, qui est stocké dans la variable X, est équivalent à 100.

Si instruction dans le script shell

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

  • -égaliseur - Égal à
  • -ne - Pas égal à
  • -LT - Moins que
  • -le - Inférieur ou égal à
  • -LT - Moins que
  • -ge - Plus grand ou égal à

Par exemple, le si staté bloc ci-dessous imprime 'Travailler plus dur'Si le score d'entrée est une valeur inférieure à 50.

si [[$ x -lt 50]]; puis écho à travailler plus dur!' Fi 
Si instruction dans le script shell

Exemple d'une déclaration if-else

Pour des situations où vous avez 2 résultats possibles: - que ce soit ceci ou cela - la déclaration IF-Else est utile.

Si commande alors déclaration1 else instruction2 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 êtes passé!' message. Cependant, si le score tombe en dessous 70, le résultat 'Vous avez échoué'sera imprimé.

#!/ bin / bash echo 'entrez le score' lire x si [[$ x -ge 70]]; Puis écho 'excellent travail, vous êtes passé!«else echo 'you a échoué' 
Instruction if-else dans le script shell

Exemple d'une déclaration if-elif-else

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

Si condition1 alors déclaration1 elif condition2 alors déclaration2 else instruction3 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 'entrez le score' lire x si [[$ x -eq 90]]; Puis écho «vous avez remporté le premier prix» ELIF [[$ x -eq 60]]; Puis écho «vous avez remporté le deuxième prix» ELIF [[$ x -eq 30]]; Puis écho «vous avez remporté le deuxième prix», Echo «s'il vous plaît essayez encore» Fi 
Énoncé de si-elif-else

3. Utilisation de l'instruction IF avec et logique

Vous pouvez utiliser le si déclaration aux côtés du 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 'Veuillez saisir votre user_id' lire user_id echo 'Veuillez saisir votre tag_no' lire tag_id si [[($ user_id == "tecmint" && $ tag_id -eq 3990)]]; puis écho à «connecter réussi», echo «défaillance de connexion» fi 

5. Utilisation de l'instruction IF avec ou de la logique

Lorsque vous utilisez le OU logique, qui est représentée par || Symbole, l'une des conditions doit être satisfaite du script pour donner les résultats attendus.

#!/ bin / bash echo 'Veuillez saisir un numéro de lecture aléatoire' si [[(numéro -eq 55 || nombre -eq 80)]]; puis faire écho aux félicitations! Vous avez gagné «else echo» désolé, réessayez 
Si déclaration avec ou logique

Utiliser des constructions en boucle

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

Pendant la boucle

C'est l'une des boucles les plus faciles à travailler avec. La syntaxe est assez simple:

Pendant que les commandes sont faites 

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

#!/ bin / bash # un compteur de boucle simple while = 1 while [$ compteur -le 10] faire echo $ compteur ((compteur ++)) fait 

Discussons la boucle while:

La variable comptoir 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.

Lors de la boucle dans le script shell

Pour boucle

Comme le temps boucle, un pour boucle est utilisé pour exécuter le code itérativement. je.e. Répéter l'exécution du code autant que possible définie par l'utilisateur.

La syntaxe est:

pour var dans 1 2 3 4 5 n do Command1 Command2 Done 

Le pour boucle Ci-dessous itérate à travers 1 à 10 et traite leurs valeurs à l'écran.

Pour boucle dans le script shell

Une meilleure façon d'y parvenir est de définir une gamme à l'aide des accolades à double boucle Comme indiqué au lieu de taper tous les nombres.

#!/ bin / bash # Spécifiez la plage dans une boucle pour num en 1… 10 faire écho $ num 

Paramètres positionnels de bash

Un paramètre positionnel est une variable spéciale qui est référencée dans le script lorsque les valeurs sont transmises sur le shell mais ne peuvent pas être attribuées. Les paramètres de position sont passés à partir de 0 $ 1 $ 2 $ 3 $… pour 9 $. Au-delà de 9 $ valeur, les paramètres doivent être enfermés en crochets bouclés e.g $ 10, $ 11… et ainsi de suite.

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

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

#!/ bin / bash echo "Le nom du script est:" 0 $ Echo "Mon prénom est:" 1 $ echo "Mon deuxième nom est:" 2 $ 

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

# test de bash.SH James Kiarie 
Paramètre de position de bash

De la sortie, nous pouvons voir que la première variable imprimée est le nom du script shell, dans ce cas, test.shot. Par la suite, les noms sont imprimés correspondant aux paramètres de position définis dans le script shell.

Les paramètres de position sont utiles en ce qu'ils vous aident à personnaliser les données entrées 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 script utilisateur ou shell a un statut de sortie. Un statut de sortie est un entier.

Un statut de sortie de 0 implique que la commande a exécuté avec succès sans aucune erreur. Tout ce qui est entre 1 à 255 montre que la commande a échoué ou n'a pas exécuté avec succès.

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

Un statut de sortie de 1 point vers une erreur générale ou toute erreur inadmissible telle que l'édition de fichiers sans autorisation sudo.

Un statut de sortie de 2 points pour une utilisation incorrecte d'une commande ou d'une variable de coquille intégrée.

Le statut de sortie 127 pointe vers une commande illégale qui crée généralement le 'commande non trouvée' erreur.

Rechercher l'état de sortie de la commande

Traitement de la sortie des commandes shell dans un script

Dans Bash Scripting, vous pouvez stocker la sortie d'une commande dans une variable pour une utilisation future. Ceci est également appelé substitution de commandement Shell et peut être réalisé de la manière suivante.

variable = $ (Command) ou variable = $ (/ path / to / command) ou 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 en cours.

#!/ bin / bash aujourd'hui = $ (date) echo "aujourd'hui est $ aujourd'hui" 
Date d'impression à 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 allez-vous y aller? Premièrement, la liste de tous les utilisateurs (à la fois les utilisateurs du système, du processus et de la connexion) est stocké dans le / etc / passwd déposer.

Pour afficher le fichier, vous devez utiliser la commande CAT. Cependant, pour restreindre pour se connecter aux utilisateurs, utilisez la commande grep pour rechercher des utilisateurs avec le / bac / bash attribuer et utiliser le Cut -C 1-10 Commande comme indiqué pour afficher les 10 premiers caractères des noms.

Nous avons stocké le commandement de chat au Login_users variable.

#!/ bin / bash login_users = $ (cat / etc / passwd | grep / bin / bash | cut -c 1-10) echo 'Ceci est la liste des utilisateurs de connexion: echo $ login_users 
Liste des utilisateurs connectés

Cela amène notre tutoriel sur la création de scripts de coquille simples. Nous espérons que vous avez trouvé ce précieux.