logo

Exemples de scripts Shell

Pour toutes les distributions Linux, le script shell est comme une baguette magique qui automatise le processus, fait gagner du temps aux utilisateurs et augmente la productivité. Ce didacticiel sur les scripts doit vous présenter plus de 25 exemples de scripts.

Mais avant de passer au sujet de script shell exemples, comprenons le script shell et les cas d’utilisation réels des scripts shell.



Qu’est-ce que le script Shell ?

Eh bien, la coquille est un CLI ( interpréteur de ligne de commande ), qui s'exécute dans une fenêtre de texte dans laquelle les utilisateurs peuvent gérer et exécuter des commandes shell. D'autre part, le processus d'écriture d'un ensemble de commandes à exécuter sur un système Linux. Un fichier contenant de telles instructions est appelé un script bash.

Utilisations des scripts Shell

Vous trouverez ci-dessous quelques utilisations courantes de Shell Script :

  • Automatisation des tâches – Il peut être utilisé pour automatiser des tâches répétitives telles que des sauvegardes régulières et des tâches d'installation de logiciels.
  • Personnalisation – On peut utiliser des scripts shell pour concevoir son environnement de ligne de commande et effectuer facilement sa tâche selon les besoins.
  • Gestion de fichiers - Les scripts shell peuvent également être utilisés pour gérer et manipuler des fichiers et des répertoires, comme déplacer, copier, renommer ou supprimer des fichiers.

Exemples de scripts Shell sous Linux

1) Qu'indique le shebang (#!) au début d'un script shell ?

Le shebang (#!) au début d'un script indique l'interpréteur qui doit être utilisé pour exécuter le script. Il indique au système quel shell ou interpréteur doit interpréter les commandes du script.



Par exemple: Supposons que nous ayons un script nommé monscript.sh écrit dans le shell Bash :

exemple de liste en java
case

case

Dans cet exemple :



  • Le #!/bin/bash au début du script indique que le script doit être interprété à l'aide du shell Bash.
  • Les commandes echo sont utilisées pour imprimer des messages sur le terminal.

2) Comment exécuter un script shell à partir de la ligne de commande ?

Pour exécuter un script shell à partir de la ligne de commande, nous devons suivre ces étapes :

  • Assurez-vous que le fichier de script dispose des autorisations exécutables à l'aide du commande chmod :
chmod +x myscript.sh>
  • Exécutez le script en utilisant son nom de fichier :
./myscript.sh>

Ici, vous devez remplacer monscript.sh avec votre nom de script.

3) Écrivez un script shell qui imprime techcodeview.com sur le terminal.

Créez un nom de script `myscript.sh` (nous utilisons ` parce que ` éditeur, vous pouvez choisir n'importe quel éditeur)

vim myscript.sh>

#!/bin/bash
# Ce script imprime techcodeview.com sur le terminal
écho techcodeview.com

imprimer le nom

imprimer le nom

Nous rendons notre script exécutable en utilisant `chmod +x` puis nous l'exécutons avec `./myscipt.sh` et obtenons la sortie souhaitée techcodeview.com.

4) Expliquez le but de la commande echo dans les scripts shell.

Le commande d'écho est utilisé pour afficher du texte ou des variables sur le terminal. Il est couramment utilisé pour imprimer des messages, des valeurs de variables et générer une sortie de programme.

434

commande d'écho

Dans cet exemple, nous devons exécuter `echo` directement sur le terminal, car cela fonctionne de la même manière dans le script shell.

5) Comment attribuer une valeur à une variable dans un script shell ?

Les variables reçoivent des valeurs à l'aide de l'opérateur d'affectation =.

Par exemple:

#!/bin/bash
# Attribuer une valeur à une variable
nom = Jayesh
âge=21
echo $nom $age

Explication:

  • La variable de nom reçoit la valeur Jayesh.
  • La variable âge reçoit la valeur 21.
  • echo est utilisé pour imprimer et `$name` `$age` est utilisé pour appeler la valeur stockée dans les variables.

435

6) Écrivez un script shell qui prend le nom d'un utilisateur en entrée et le salue.

Créez un nom de script « exemple.sh ».

#!/bin/bash
# Demander à l'utilisateur son nom
écho Quel est ton nom ?
lire le nom
# Saluer l'utilisateur
echo Bonjour, $name ! Ravi de vous rencontrer.

Explication:

  • #!/bin/bash : C'est la ligne shebang. Il indique au système d'utiliser l'interpréteur Bash pour exécuter le script.
  • # Demander à l'utilisateur son nom : Ceci est un commentaire. Il fournit un contexte sur le code à venir. Les commentaires sont ignorés par l'interprète.
  • echo Quel est ton nom ? : La commande echo permet d'afficher le texte entre guillemets doubles sur le terminal.
  • read name : la commande read attend que l'utilisateur saisisse du texte et le stocke dans le nom de la variable.
  • echo Bonjour, $name ! Ravi de vous rencontrer. : Cette ligne utilise la commande echo pour imprimer un message de bienvenue qui inclut la valeur de la variable name, qui a été collectée à partir de l'entrée de l'utilisateur.

436

7) Comment ajouter des commentaires à un script shell ?

Commentaires dans les scripts shell sont utilisés pour fournir des explications ou un contexte au code. Ils sont ignorés par l’interprète et ne sont destinés qu’aux humains lisant le script. Vous pouvez ajouter des commentaires en utilisant le symbole #.

#!/bin/bash
# Ceci est un commentaire expliquant le but du script
écho gfg

8) Créez un script shell qui vérifie si un fichier existe dans le répertoire actuel.

Voici un script qui vérifie si un fichier nommé exemple.txt existe dans le répertoire courant :

#!/bin/bash
fichier=exemple.txt
# Vérifiez si le fichier existe
si [ -e $fichier ]; alors
echo Le fichier existe : $file
autre
echo Fichier introuvable : $file
être

Explication:

  1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
  2. file=example.txt : Cette ligne définit le fichier de variables et lui attribue la valeur example.txt. Vous pouvez le remplacer par le nom du fichier que vous souhaitez rechercher.
  3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. La condition [ -e $file ] vérifie si le fichier spécifié par la valeur de la variable file existe. L'indicateur -e est utilisé pour vérifier l'existence du fichier.
  4. echo Le fichier existe : $file : Si la condition est vraie (c'est-à-dire que le fichier existe), cette ligne imprime un message indiquant que le fichier existe, ainsi que le nom du fichier.
  5. else : si la condition est fausse (c'est-à-dire que le fichier n'existe pas), le script exécute le code sous la branche else.
  6. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé, ainsi que le nom du fichier.
  7. fi : Cette ligne marque la fin de l'instruction if.
Recherche de fichier

Recherche de fichier

9) Quelle est la différence entre les guillemets simples (') et les guillemets doubles () dans les scripts shell ?

Les guillemets simples (') et les guillemets doubles () sont utilisés pour délimiter des chaînes dans les scripts shell, mais ils ont des comportements différents :

  • Guillemets simples : tout ce qui se trouve entre guillemets simples est traité comme une chaîne littérale. Les noms de variables et la plupart des caractères spéciaux ne sont pas développés.
  • Guillemets doubles : les variables et certains caractères spéciaux entre guillemets doubles sont développés. Le contenu est soumis à la substitution de variables et à la substitution de commandes.

#!/bin/bash

abcd=Bonjour
echo '$abcd' # Sortie : $abcd
echo $abcd # Sortie : Bonjour

10) Comment utiliser les arguments de ligne de commande dans un script shell ?

Arguments de ligne de commande sont des valeurs fournies à un script lors de son exécution. Ils sont accessibles dans le script à l'aide de variables spéciales telles que , , etc., où représente le premier argument, représente le deuxième argument, et ainsi de suite.

Par exemple: Si le nom de notre script dans `example.sh`

#!/bin/bash

echo Nom du script : 

Pour toutes les distributions Linux, le script shell est comme une baguette magique qui automatise le processus, fait gagner du temps aux utilisateurs et augmente la productivité. Ce didacticiel sur les scripts doit vous présenter plus de 25 exemples de scripts.

Mais avant de passer au sujet de script shell exemples, comprenons le script shell et les cas d’utilisation réels des scripts shell.

Qu’est-ce que le script Shell ?

Eh bien, la coquille est un CLI ( interpréteur de ligne de commande ), qui s'exécute dans une fenêtre de texte dans laquelle les utilisateurs peuvent gérer et exécuter des commandes shell. D'autre part, le processus d'écriture d'un ensemble de commandes à exécuter sur un système Linux. Un fichier contenant de telles instructions est appelé un script bash.

Utilisations des scripts Shell

Vous trouverez ci-dessous quelques utilisations courantes de Shell Script :

  • Automatisation des tâches – Il peut être utilisé pour automatiser des tâches répétitives telles que des sauvegardes régulières et des tâches d'installation de logiciels.
  • Personnalisation – On peut utiliser des scripts shell pour concevoir son environnement de ligne de commande et effectuer facilement sa tâche selon les besoins.
  • Gestion de fichiers - Les scripts shell peuvent également être utilisés pour gérer et manipuler des fichiers et des répertoires, comme déplacer, copier, renommer ou supprimer des fichiers.

Exemples de scripts Shell sous Linux

1) Qu'indique le shebang (#!) au début d'un script shell ?

Le shebang (#!) au début d'un script indique l'interpréteur qui doit être utilisé pour exécuter le script. Il indique au système quel shell ou interpréteur doit interpréter les commandes du script.

Par exemple: Supposons que nous ayons un script nommé monscript.sh écrit dans le shell Bash :

case

case

Dans cet exemple :

  • Le #!/bin/bash au début du script indique que le script doit être interprété à l'aide du shell Bash.
  • Les commandes echo sont utilisées pour imprimer des messages sur le terminal.

2) Comment exécuter un script shell à partir de la ligne de commande ?

Pour exécuter un script shell à partir de la ligne de commande, nous devons suivre ces étapes :

  • Assurez-vous que le fichier de script dispose des autorisations exécutables à l'aide du commande chmod :
chmod +x myscript.sh>
  • Exécutez le script en utilisant son nom de fichier :
./myscript.sh>

Ici, vous devez remplacer monscript.sh avec votre nom de script.

3) Écrivez un script shell qui imprime techcodeview.com sur le terminal.

Créez un nom de script `myscript.sh` (nous utilisons ` parce que ` éditeur, vous pouvez choisir n'importe quel éditeur)

vim myscript.sh>

#!/bin/bash
# Ce script imprime techcodeview.com sur le terminal
écho techcodeview.com

imprimer le nom

imprimer le nom

Nous rendons notre script exécutable en utilisant `chmod +x` puis nous l'exécutons avec `./myscipt.sh` et obtenons la sortie souhaitée techcodeview.com.

4) Expliquez le but de la commande echo dans les scripts shell.

Le commande d'écho est utilisé pour afficher du texte ou des variables sur le terminal. Il est couramment utilisé pour imprimer des messages, des valeurs de variables et générer une sortie de programme.

434

commande d'écho

Dans cet exemple, nous devons exécuter `echo` directement sur le terminal, car cela fonctionne de la même manière dans le script shell.

5) Comment attribuer une valeur à une variable dans un script shell ?

Les variables reçoivent des valeurs à l'aide de l'opérateur d'affectation =.

Par exemple:

#!/bin/bash
# Attribuer une valeur à une variable
nom = Jayesh
âge=21
echo $nom $age

Explication:

  • La variable de nom reçoit la valeur Jayesh.
  • La variable âge reçoit la valeur 21.
  • echo est utilisé pour imprimer et `$name` `$age` est utilisé pour appeler la valeur stockée dans les variables.

435

6) Écrivez un script shell qui prend le nom d'un utilisateur en entrée et le salue.

Créez un nom de script « exemple.sh ».

#!/bin/bash
# Demander à l'utilisateur son nom
écho Quel est ton nom ?
lire le nom
# Saluer l'utilisateur
echo Bonjour, $name ! Ravi de vous rencontrer.

Explication:

  • #!/bin/bash : C'est la ligne shebang. Il indique au système d'utiliser l'interpréteur Bash pour exécuter le script.
  • # Demander à l'utilisateur son nom : Ceci est un commentaire. Il fournit un contexte sur le code à venir. Les commentaires sont ignorés par l'interprète.
  • echo Quel est ton nom ? : La commande echo permet d'afficher le texte entre guillemets doubles sur le terminal.
  • read name : la commande read attend que l'utilisateur saisisse du texte et le stocke dans le nom de la variable.
  • echo Bonjour, $name ! Ravi de vous rencontrer. : Cette ligne utilise la commande echo pour imprimer un message de bienvenue qui inclut la valeur de la variable name, qui a été collectée à partir de l'entrée de l'utilisateur.

436

7) Comment ajouter des commentaires à un script shell ?

Commentaires dans les scripts shell sont utilisés pour fournir des explications ou un contexte au code. Ils sont ignorés par l’interprète et ne sont destinés qu’aux humains lisant le script. Vous pouvez ajouter des commentaires en utilisant le symbole #.

#!/bin/bash
# Ceci est un commentaire expliquant le but du script
écho gfg

8) Créez un script shell qui vérifie si un fichier existe dans le répertoire actuel.

Voici un script qui vérifie si un fichier nommé exemple.txt existe dans le répertoire courant :

#!/bin/bash
fichier=exemple.txt
# Vérifiez si le fichier existe
si [ -e $fichier ]; alors
echo Le fichier existe : $file
autre
echo Fichier introuvable : $file
être

Explication:

  1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
  2. file=example.txt : Cette ligne définit le fichier de variables et lui attribue la valeur example.txt. Vous pouvez le remplacer par le nom du fichier que vous souhaitez rechercher.
  3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. La condition [ -e $file ] vérifie si le fichier spécifié par la valeur de la variable file existe. L'indicateur -e est utilisé pour vérifier l'existence du fichier.
  4. echo Le fichier existe : $file : Si la condition est vraie (c'est-à-dire que le fichier existe), cette ligne imprime un message indiquant que le fichier existe, ainsi que le nom du fichier.
  5. else : si la condition est fausse (c'est-à-dire que le fichier n'existe pas), le script exécute le code sous la branche else.
  6. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé, ainsi que le nom du fichier.
  7. fi : Cette ligne marque la fin de l'instruction if.
Recherche de fichier

Recherche de fichier

9) Quelle est la différence entre les guillemets simples (') et les guillemets doubles () dans les scripts shell ?

Les guillemets simples (') et les guillemets doubles () sont utilisés pour délimiter des chaînes dans les scripts shell, mais ils ont des comportements différents :

  • Guillemets simples : tout ce qui se trouve entre guillemets simples est traité comme une chaîne littérale. Les noms de variables et la plupart des caractères spéciaux ne sont pas développés.
  • Guillemets doubles : les variables et certains caractères spéciaux entre guillemets doubles sont développés. Le contenu est soumis à la substitution de variables et à la substitution de commandes.

#!/bin/bash

abcd=Bonjour
echo '$abcd' # Sortie : $abcd
echo $abcd # Sortie : Bonjour

10) Comment utiliser les arguments de ligne de commande dans un script shell ?

Arguments de ligne de commande sont des valeurs fournies à un script lors de son exécution. Ils sont accessibles dans le script à l'aide de variables spéciales telles que $1, $2, etc., où $1 représente le premier argument, $2 représente le deuxième argument, et ainsi de suite.

Par exemple: Si le nom de notre script dans `example.sh`

#!/bin/bash

echo Nom du script : $0
echo Premier argument : $1
echo Deuxième argument : $2

Si nous exécutons le script avec `.example.sh hello_1 hello_2`, il affichera :

arguments CLI

arguments CLI

11) Comment utilisez-vous la boucle for pour parcourir une liste de valeurs ?

Créez un nom de script « exemple.sh ».

#!/bin/bash

fruits=(pomme banane cerise datte)
pour les fruits dans ${fruits[@]} ; faire
echo Fruit actuel : $fruit
fait

Explication:

La ligne `fruits=` crée un tableau nommé fruits avec quatre éléments : pomme, banane, cerise et date.

  • pour les fruits dans ${fruits[@]} ; do : Cette ligne démarre une boucle for. Voici ce que signifie chaque partie :
  • pour fruit : ceci déclare une variable de boucle appelée fruit. À chaque itération de la boucle, fruit contiendra la valeur de l'élément actuel du tableau fruits.
  • ${fruits[@]} : Il s'agit d'une extension de tableau qui prend tous les éléments du tableau de fruits. La syntaxe ${…} garantit que chaque élément est traité comme un élément distinct.
  • do : ce mot-clé marque le début du corps de la boucle.
  • echo Fruit actuel : $fruit : À l'intérieur de la boucle, cette ligne utilise la commande echo pour afficher la valeur actuelle de la variable de boucle fruit. Il imprime un message comme Current fruit: apple pour chaque fruit du tableau.
  • done : ce mot-clé marque la fin du corps de la boucle. Il indique au script que la boucle est terminée.
pour la boucle

pour la boucle

12) Écrivez un script shell qui calcule la somme des entiers de 1 à N à l'aide d'une boucle.

Créez un nom de script « exemple.sh ».

#!/bin/bash

echo Entrez un nombre (N) :
lire N
somme=0
pour (( i=1; i<=$N; i++ )); faire
somme=$((somme + i))
fait
echo La somme des entiers de 1 à $N est : $sum

Explication:
Le script commence par vous demander de saisir un nombre (N) en utilisant read. Ce nombre déterminera combien de fois la boucle sera exécutée.

  1. La somme variable est initialisée à 0. Cette variable gardera une trace de la somme des entiers.
  2. La boucle for commence par for (( i=1; i<=$N; i++ )). Cette structure de boucle permet de répéter un ensemble d'actions un certain nombre de fois, en l'occurrence de 1 à la valeur de N.
  3. À l'intérieur de la boucle, ces choses se produisent :
    • i=1 définit la variable de boucle i sur 1 au début de chaque itération.
    • La condition de boucle i<=$N vérifie si i est toujours inférieur ou égal au nombre N donné.
    • Si la condition est vraie, le corps de la boucle s'exécute.
    • sum=$((sum + i)) calcule la nouvelle valeur de sum en y ajoutant la valeur actuelle de i. Cela additionne les entiers de 1 à la valeur i actuelle.
  4. Après chaque itération, i++ incrémente la valeur de i de 1.
  5. La boucle continue de s'exécuter jusqu'à ce que la condition i<=$N devienne fausse (lorsque i devient supérieur à N).
  6. Une fois la boucle terminée, le script affiche la somme des entiers de 1 au nombre N saisi.

439

13) Créez un script qui recherche un mot spécifique dans un fichier et compte ses occurrences.

Créez un nom de script `word_count.sh`

#!/bin/bash

echo Saisissez le mot à rechercher :
lire mot_cible
echo Entrez le nom du fichier :
lire le nom du fichier
count=$(grep -o -w $target_word $filename | wc -l)
echo Le mot « $target_word » apparaît $count fois dans « $filename ».

Explication:

  • echo Saisissez le mot à rechercher : : Cette ligne affiche un message demandant à l'utilisateur de saisir le mot qu'il souhaite rechercher dans un fichier.
  • read target_word : cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée target_word.
  • echo Entrez le nom du fichier : : Cette ligne affiche un message demandant à l'utilisateur de saisir le nom du fichier dans lequel il souhaite effectuer la recherche.
  • read filename : Cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée filename.
  • count=$(grep -o -w $target_word $filename | wc -l) : Cette ligne effectue le travail principal du script. Décomposons-le davantage :
    • grep -o -w $target_word $filename : Cette partie de la commande recherche les occurrences du target_word dans le nom de fichier spécifié. Les options -o et -w garantissent que seules les correspondances de mots entiers sont prises en compte.
    • | : Il s'agit d'un canal qui prend la sortie de la commande précédente et l'envoie en entrée à la commande suivante.
    • wc -l : Cette partie de la commande utilise la commande wc pour compter le nombre de lignes dans l'entrée. L'option -l compte spécifiquement les lignes.
    • La commande entière calcule le nombre d'occurrences du mot_cible dans le fichier et attribue ce nombre à la variable count.

441

14) Expliquez les différences entre la sortie standard (stdout) et l'erreur standard (stderr).

La principale différence entre la sortie standard (stdout) et l'erreur standard (stderr) est la suivante :

  • Sortie standard (sortie standard) : Il s’agit du flux de sortie par défaut vers lequel va la sortie régulière d’une commande. Il est affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant>.
  • Erreur standard (stderr) : Il s'agit du flux de sortie des messages d'erreur et des avertissements. Il est également affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant 2>.

15) Expliquez le concept d'instructions conditionnelles dans les scripts shell.

Instructions conditionnelles dans les scripts shell nous permettent de prendre des décisions et de contrôler le déroulement de notre script en fonction de certaines conditions. Ils permettent à notre script d'exécuter différents ensembles de commandes selon qu'une condition particulière est vraie ou fausse. Les principales instructions conditionnelles dans les scripts shell sont l'instruction if, l'instruction elif (facultatif) et l'instruction else (facultatif).

Voici la structure de base d’une instruction conditionnelle dans les scripts shell :

si [condition]; alors
# Commandes à exécuter si la condition est vraie
elif [ autre_condition ]; alors
# Commandes à exécuter si another_condition est vraie (facultatif)
autre
# Commandes à exécuter si aucune des conditions n'est vraie (facultatif)
être

Explication:

  • [ condition ] = Commande qui évalue la condition et renvoie un statut de sortie vrai (0) ou faux (différent de zéro).
  • then = C'est un mot-clé qui indique que les commandes qui le suivent seront exécutées si la condition est évaluée comme vraie.
  • elif = (abréviation de else if) C'est une section qui nous permet de spécifier des conditions supplémentaires à vérifier.
  • else = c'est une section qui contient des commandes qui seront exécutées si aucune des conditions n'est vraie.
  • fi = C'est un mot-clé qui marque la fin du bloc conditionnel.

16) Comment lire les lignes d'un fichier dans un script shell ?

À lire des lignes à partir d'un fichier dans un script shell, nous pouvons utiliser diverses méthodes, mais une approche courante consiste à utiliser une boucle while en combinaison avec la commande read. Voici comment nous pouvons procéder :

#!/bin/bash
fichier=/home/jayeshkumar/jayesh.txt
# Vérifiez si le fichier existe
si [ -e $fichier ]; alors
while IFS= read -r ligne ; faire
echo Ligne lue : $line
# Ajoutez votre logique de traitement ici
fait <$fichier
autre
echo Fichier introuvable : $file
être

Explication:

  1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
  2. file=/home/jayeshkumar/jayesh.txt : Cette ligne définit le fichier de variables et attribue le chemin complet au fichier jayesh.txt dans le répertoire /home/jayeshkumar. Modifiez ce chemin pour qu'il corresponde au chemin réel du fichier que vous souhaitez lire.
  3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. Il vérifie si le fichier spécifié par la variable $file existe. L'indicateur -e vérifie l'existence du fichier.
  4. while IFS= read -r ligne ; do : Cette ligne initie une boucle while qui lit les lignes du fichier.
    • IFS= : IFS (Internal Field Separator) est défini sur une valeur vide pour préserver les espaces de début et de fin.
    • read -r line : ceci lit la ligne actuelle du fichier et la stocke dans la ligne variable.
  5. echo Line read : $line : Cette ligne imprime le contenu de la ligne qui a été lue dans le fichier. La variable $line contient le contenu de la ligne courante.
  6. # Ajoutez votre logique de traitement ici : Il s'agit d'un commentaire fictif dans lequel vous pouvez ajouter votre propre logique pour traiter chaque ligne. Par exemple, vous pouvez analyser la ligne, extraire des informations ou effectuer des actions spécifiques en fonction du contenu.
  7. done <$file : Ceci marque la fin de la boucle while. Le < $file redirige le contenu du fichier à lire par la boucle.
  8. else : si le fichier n'existe pas (la condition dans l'instruction if est fausse), le script exécute le code sous la branche else.
  9. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé.
  10. fi : Cette ligne marque la fin de l'instruction if.
lecture d'un fichier

lecture d'un fichier

Ici , nous avons utilisé ` mot de passe ` pour obtenir le chemin du répertoire courant.

17) Écrivez une fonction dans un script shell qui calcule la factorielle d'un nombre donné.

Voici le script quicalculer la factorielled'un nombre donné.

#!/bin/bash
# Définir une fonction pour calculer factorielle
calculer_factorial() {
num=$1
fait=1
pour ((i=1; i<=num; i++)); faire
fait=$((fait * i))
fait
écho $fait
}
# Inviter l'utilisateur à saisir un numéro
echo Entrez un numéro :
lire num_entrée
# Appelez la fonction calculate_factorial avec le numéro d'entrée
factorial_result=$(calculate_factorial $input_num)
# Afficher le résultat factoriel
echo Factorielle de $input_num est : $factorial_result

Explication:

  1. Le script commence par la ligne shebang #!/bin/bash pour spécifier l'interpréteur.
  2. calculate_factorial() est défini comme une fonction. Il faut un argument, num, qui est le nombre pour lequel la factorielle doit être calculée.
  3. A l'intérieur de la fonction, fact est initialisé à 1. Cette variable stockera le résultat factoriel.
  4. La boucle for parcourt de 1 au nombre donné (num). À chaque itération, il multiplie la valeur actuelle du fait par l'indice de boucle i.
  5. Une fois la boucle terminée, la variable de fait contient la factorielle calculée.
  6. Le script invite l'utilisateur à saisir un nombre en utilisant read.
  7. La fonction calculate_factorial est appelée avec le numéro fourni par l'utilisateur et le résultat est stocké dans la variable factorial_result.
  8. Enfin, le script affiche le résultat factoriel calculé.
Factorielle

Factorielle

18) Comment gérez-vous les signaux comme Ctrl+C dans un script shell ?

Dans un script shell, vous pouvez gérer des signaux tels que Ctrl+C (également appelé SIGINT) à l'aide de la commande trap. Ctrl+C génère un signal SIGINT lorsque l'utilisateur appuie dessus pour interrompre le script ou le programme en cours d'exécution. En utilisant la commande trap, vous pouvez spécifier les actions à entreprendre lorsqu'un signal particulier est reçu. Voici comment gérer les signaux tels que Ctrl+C dans un script shell :

#!/bin/bash
nettoyer() {
echo Script interrompu. Effectuer un nettoyage…
# Ajoutez vos actions de nettoyage ici
sortie 1
}
# Configurer un piège pour appeler la fonction de nettoyage lorsque Ctrl+C (SIGINT) est reçu
nettoyage des pièges SIGINT
# Reste de votre script
écho En cours d'exécution…
dormir 10
écho Terminé.

La gestion des signaux est importante pour rendre les scripts robustes et garantir qu'ils gèrent les interruptions inattendues avec élégance. Vous pouvez personnaliser la fonction de nettoyage en fonction de vos besoins spécifiques, comme la fermeture de fichiers, l'arrêt de processus ou la journalisation d'informations avant la fermeture du script.

Explication:

  1. #!/bin/bash : Cette ligne shebang spécifie l'interpréteur à utiliser pour exécuter le script.
  2. cleanup() { … } : Ceci définit une fonction nommée cleanup. Dans cette fonction, vous pouvez inclure toutes les actions qui doivent être effectuées lorsque le script est interrompu, telles que la fermeture de fichiers, la libération de ressources ou l'exécution d'autres tâches de nettoyage.
  3. trap cleanup SIGINT : La commande trap est utilisée pour configurer un gestionnaire de signal. Dans ce cas, il précise que lorsque le signal SIGINT (Ctrl+C) est reçu, la fonction de nettoyage doit être exécutée.
  4. echo Running…, sleep 10, echo Finished. : Ce ne sont que des exemples de commandes pour simuler l’exécution d’un script.

446

19) Créez un script qui recherche et supprime les lignes en double dans un fichier texte.

Voici notre script Linux dans lequel nous supprimerons les lignes en double d'un fichier texte.

#!/bin/bash
fichier_entrée=entrée.txt
fichier_de sortie=sortie.txt
trier $input_file | uniq> $fichier_sortie
echo Les lignes en double ont été supprimées avec succès.

Explication:

  1. Le script commence par un shebang (#!/bin/bash), qui indique que le script doit être interprété à l'aide du shell Bash.
  2. La variable input_file est définie sur le nom du fichier d'entrée contenant des lignes en double (remplacez-le par le nom réel de votre fichier d'entrée).
  3. La variable output_file est définie sur le nom du fichier de sortie où les doublons seront supprimés (remplacez-le par le nom du fichier de sortie souhaité).
  4. Le script utilise la commande sort pour trier les lignes du fichier d'entrée. Le tri des lignes garantit que les lignes en double sont regroupées.
  5. Les lignes triées sont ensuite transmises via la commande uniq, qui supprime les lignes consécutives en double. La sortie de ce processus est redirigée vers le fichier de sortie.
  6. Une fois les doublons supprimés, le script imprime un message de réussite.
suppression de ligne en double

suppression de ligne en double

Ici, nous utilisons ` chat ` pour afficher le texte à l'intérieur du fichier texte.

20) Écrivez un script qui génère un mot de passe aléatoire sécurisé.

Voici notre script pour générer un mot de passe aléatoire sécurisé.

#!/bin/bash
# Fonction pour générer un mot de passe aléatoire
créer un mot de passe() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Appelez la fonction et stockez le mot de passe généré
mot de passe=$(generate_password)
echo Mot de passe généré : $password

Remarque : L'utilisateur peut en conséquence modifier la longueur de son mot de passe en remplaçant le chiffre « 12 ».

Explication:

  1. Le script commence par un shebang (#!/bin/bash), indiquant qu'il doit être interprété à l'aide du shell Bash.
  2. La fonction generate_password est définie pour générer un mot de passe aléatoire. Voici comment cela fonctionne:
    • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    • Fold -w 12 divise les données aléatoires filtrées en lignes de 12 caractères chacune.
    • head -n 1 sélectionne la première ligne, nous donnant effectivement une séquence aléatoire de caractères de longueur 12.
  3. La variable password reçoit le résultat de l'appel de la fonction generate_password.
  4. Enfin, le mot de passe généré est affiché en utilisant echo.

448

21) Écrivez un script shell qui calcule la taille totale de tous les fichiers d'un répertoire.

Voici un script shell pour calculer la taille totale de tous les fichiers d'un répertoire.

#!/bin/bash
répertoire=/chemin/vers/votre/répertoire
total_size=$(du -csh $directory | grep total | awk '{print $1}')
echo Taille totale des fichiers dans $directory : $total_size

Explication:

  1. Le script commence par le shebang #!/bin/bash, indiquant qu'il doit être interprété à l'aide du shell Bash.
  2. La variable directory est définie sur le chemin du répertoire pour lequel vous souhaitez calculer la taille totale du fichier. Remplacez /path/to/your/directory par le chemin réel.
  3. La commande du est utilisée pour estimer l'utilisation de l'espace fichier. Les options utilisées sont :
    • -c : produit un total général.
    • -s : affiche uniquement la taille totale du répertoire spécifié.
    • -h : tailles d'impression dans un format lisible par l'homme (par exemple, Ko, Mo, Go).
  4. La sortie de du est redirigée vers grep total pour filtrer la ligne qui contient la taille totale.
  5. awk '{print $1}' est utilisé pour extraire le premier champ (taille totale) de la ligne.
  6. La taille totale calculée est stockée dans la variable total_size.
  7. Enfin, le script affiche la taille totale en utilisant echo.
Taille totale des fichiers

Taille totale des fichiers

Ici , nous avons utilisé ` mot de passe ` pour voir le chemin du répertoire actuel.

22) Expliquez la différence entre les instructions if et elif dans les scripts shell.

Fonctionnalité `if`Staiftement Déclaration `elif`
But Expliquez la différence entre les instructions if et elif dans les scripts shell. Fournit des conditions alternatives pour vérifier lorsque la condition if initiale est fausse.
usage Utilisé pour la condition initiale. Utilisé après la condition if initiale pour vérifier des conditions supplémentaires.
nombre de blocs Ne peut en avoir qu'un seul if block. Peut avoir plusieurs blocs elif, mais un seul bloc else (facultatif).
Exécution Exécute le bloc de code associé à l'instruction if si la condition est vraie. Si la condition est fausse, le bloc else (s'il est présent) est exécuté (facultatif). Vérifie chaque condition elif dans l'ordre. Si une condition elif est vraie, le bloc de code correspondant est exécuté et le script quitte l'intégralité du bloc conditionnel. Si aucune des conditions elif n'est vraie, le bloc else (s'il est présent) est exécuté.
Structures imbriquées Peut être imbriqué dans d’autres blocs if, elif ou else. Ne peut pas être imbriqué dans un autre bloc elif, mais peut être utilisé dans un bloc if ou else.

Comprenons-le par un exemple.

#!/bin/bash
nombre=5
si [ $numéro -gt 10 ]; alors
echo $le nombre est supérieur à 10
autre
echo $le nombre n'est pas supérieur à 10
être
écho ---
si [ $numéro -gt 10 ]; alors
echo $le nombre est supérieur à 10
elif [ $numéro -eq 10 ]; alors
echo $number est égal à 10
autre
echo $le nombre est inférieur à 10
être

Explication:

Dans cet exemple, le premier bloc if vérifie si le nombre est supérieur à 10. Sinon, il imprime un message indiquant que le nombre n'est pas supérieur à 10. Le deuxième bloc avec les instructions elif vérifie plusieurs conditions séquentiellement jusqu'à ce que l'une d'entre elles soit vraie. Dans ce cas, puisque la valeur du nombre est 5, le résultat sera :

différence if_elif

différence if_elif

23) Comment utiliser une boucle while pour exécuter des commandes à plusieurs reprises ?

Une boucle while est utilisée dans les scripts shell pour exécuter de manière répétée un ensemble de commandes tant qu'une condition spécifiée est vraie. La boucle continue d'exécuter les commandes jusqu'à ce que la condition devienne fausse.

Voici la syntaxe de base d’une boucle while :

tandis que [ condition ]; faire
# Commandes à exécuter
fait

Explication:

  1. La boucle « while » commence par le mot-clé « while » suivi d'une condition entre crochets « [ ] ».
  2. Le corps de la boucle, qui contient les commandes à exécuter, est entouré des mots-clés « do » et « done ».
  3. La boucle vérifie d'abord la condition. Si la condition est vraie, les commandes contenues dans le corps de la boucle sont exécutées. Une fois le corps de la boucle exécuté, la condition est à nouveau vérifiée et le processus se répète jusqu'à ce que la condition devienne fausse.

Exemple: Si nous voulons imprimer des nombres de 1 à 5

#!/bin/bash
compteur=1
while [ $counter -le 5 ]; faire
Numéro d'écho : $compteur
compteur=$((compteur + 1))
fait

Explication:

  • La variable compteur est mise à 1.
  • La boucle while vérifie si la valeur du compteur est inférieure ou égale à 5. Tant que cette condition est vraie, la boucle continue de s'exécuter.
  • À l'intérieur de la boucle, la valeur actuelle du compteur est imprimée en utilisant echo.
  • Le compteur est incrémenté de 1 à l'aide de l'expression $((counter + 1)).
boucle while

boucle while

24) Créez un script shell qui recherche et répertorie tous les fichiers vides dans un répertoire.

Script Shell que vous pouvez utiliser pour rechercher et lister tous les fichiers vides dans un répertoire à l'aide des commandes `find` et `stat` :

#!/bin/bash
répertoire=$1″
if [ -z $répertoire ]; alors
echo Utilisation : 0 $
sortie 1
être

si [ ! -d $répertoire ]; alors
echo Erreur : « $directory » n'est pas un répertoire valide.
sortie 1
être
echo Fichiers vides dans $répertoire :
trouver $répertoire -type f -vide

Explication:

  1. ` #!/bin/bash ` : C'est ce qu'on appelle un shebang, et cela indique au système d'exploitation d'utiliser le shell Bash pour interpréter et exécuter le script.
  2. ` répertoire=$1″ ` : Cette ligne attribue le premier argument de ligne de commande (noté $1) à la variable ` annuaire `.
  3. ` if [ -z $répertoire ]; alors ` : Cette ligne démarre une instruction if qui vérifie si le ` annuaire ` La variable est vide (-z teste une chaîne vide).
  4. ` echo Utilisation : 0 $ ` : Si le répertoire est vide, cette ligne affiche un message d'utilisation, où ` 0 $ ` représente le nom du script.
  5. ` sortie 1 ` : Cette ligne quitte le script avec un code de sortie de ` 1 `, indiquant une erreur.
  6. ` être ` : Cette ligne marque la fin du ` si `déclaration.
  7. ` si [ ! -d $répertoire ]; alors ` : Cela démarre une autre instruction if pour vérifier si le répertoire fourni existe (` -d ` teste un répertoire).
  8. ` echo Erreur : « $directory » n'est pas un répertoire valide. ` : Si le répertoire fourni n'existe pas, cette ligne affiche un message d'erreur.
  9. ` sortie 1 ` : Quitte le script avec un code de sortie de ` 1 `.
  10. ` être ` : marque la fin de la seconde ` si` déclaration.
  11. ` echo Fichiers vides dans $répertoire : ` : Si tout est valide jusqu'à présent, cette ligne imprime un message indiquant que le script listera les fichiers vides dans le répertoire spécifié.
  12. ` trouver $répertoire -type f -vide ` : Cette ligne utilise le ` trouver ` commande pour rechercher des fichiers vides (` -vide `) de type fichiers normaux (` -type f `) dans le répertoire spécifié. Il répertorie ensuite ces fichiers vides.
Trouver des fichiers vides

Trouver des fichiers vides

Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/

25) Quel est le but de la commande read dans les scripts shell ?

La commande read dans les scripts shell permet au script de vous demander des informations. C'est comme lorsqu'un ordinateur vous pose une question et attend votre réponse. Ceci est utile pour les scripts qui nécessitent que vous tapiez quelque chose ou lorsque le script doit travailler avec des informations provenant de fichiers. La commande read aide le script à s'arrêter et à attendre ce que vous tapez, puis il peut utiliser ces informations pour faire plus de choses dans le script.

Syntaxe de la commande read :

read variable_name>

Exemple : Si nous voulons prendre le nom comme entrée de l'utilisateur pour l'imprimer.

#!/bin/bash
echo Veuillez entrer votre nom :
lire le nom
echo Bonjour, $name !

453

lire le nom

En résumé, la commande read est utilisée pour capturer les entrées utilisateur ou les données des fichiers dans des scripts shell, rendant les scripts plus interactifs et polyvalents.

26) Écrivez un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

Voici un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

#!/bin/bash
répertoire=$1″
if [ -z $répertoire ]; alors
echo Utilisation : 0 $
sortie 1
être

si [ ! -d $répertoire ]; alors

echo Erreur : « $directory » n'est pas un répertoire valide.
sortie 1
être

cd $répertoire || sortie 1

pour le fichier dans * ; faire
si [ -f $fichier ]; alors
nouveau nom=$(echo $file | tr 'A-Z' 'a-z')
[ $file != $nouveau nom ] && mv $file $nouveau nom
être
fait

Explication:

  1. #!/bin/bash : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
  2. répertoire=$1″ : Cette ligne attribue le premier argument de ligne de commande au répertoire de variables.
  3. if [ -z $répertoire ]; alors : Cette ligne vérifie si la variable répertoire est vide (aucun argument fourni lors de l'exécution du script).
  4. echo Utilisation : 0 $ : Si le répertoire est vide, cette ligne imprime un message d'utilisation avec le nom du script ($0).
  5. sortie 1 : Cette ligne quitte le script avec un code de sortie de 1, indiquant qu'une erreur s'est produite.
  6. F i : Cela marque la fin de la première instruction if.
  7. si [ ! -d $répertoire ]; alors : Cette ligne vérifie si le répertoire spécifié n'existe pas (-d teste un répertoire).
  8. echo Erreur : « $directory » n'est pas un répertoire valide. : Si le répertoire spécifié n'existe pas, cette ligne affiche un message d'erreur.
  9. sortie 1 : Quitte le script avec un code de sortie de 1.
  10. être : Marque la fin de la deuxième instruction if.
  11. cd $répertoire || sortie 1 : remplace le répertoire de travail actuel par le répertoire spécifié. Si le changement de répertoire échoue (par exemple, répertoire inexistant), le script se termine avec un code d'erreur.
  12. pour le fichier dans * ; faire: je pour le fichier dans * ; faire: lance une boucle qui parcourt tous les éléments du répertoire courant (* correspond à tous les noms de fichiers).
  13. si [ -f $fichier ]; alors : Vérifie si l'élément d'itération de boucle actuel est un fichier normal (-f teste un fichier normal).
  14. nouveau nom=$(echo $file | tr 'A-Z' 'a-z') : Convertit le nom de fichier actuel ($file) en minuscules à l'aide de la commande tr et stocke le résultat dans la variable newname.
  15. [ $file != $nouveau nom ] && mv $file $nouveau nom : Compare le nom de fichier d'origine avec le nouveau nom de fichier en minuscules. S'ils sont différents, il renomme le fichier à l'aide de la commande mv.
  16. être : Marque la fin de l’instruction if interne.
  17. fait : Marque la fin de la boucle.

454

Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/test

27) Comment utiliser des opérations arithmétiques dans un script shell ?

Les opérations arithmétiques peuvent être effectuées dans un script shell à l'aide de diverses méthodes intégrées. Le shell fournit des mécanismes pour des calculs arithmétiques simples utilisant l'expansion arithmétique comme :

  1. Expansion arithmétique ($((…)))
  2. Utilisation de la commande expr
  3. Utilisation de la commande let

Voici notre script Shell expliquant les trois méthodes d'opérations arithmétiques.

#!/bin/bash
num1=10
num2=5

#Expansion arithmétique ($((…)))

résultat=$((num1 + num2))
echo Somme : $résultat

#Utilisation de la commande expr

somme=$(expr $num1 + $num2)
echo Somme : $somme

#Utilisation de la commande let

soit somme = num1 + num2
echo Somme : $somme

Explication:

  1. `#!/bin/bash` : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
  2. `num1=10` et ` num2=5` : Ces lignes attribuent les valeurs 10 et 5 aux variables ` num1 ' et ' numéro2 `, respectivement.
  3. `#Expansion arithmétique ($((…)))` : Il s'agit d'un commentaire indiquant le début de la section qui démontre le développement arithmétique.
  4. `résultat=$((num1 + num2))` : Cette ligne utilise le développement arithmétique pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` résultat `variable.
  5. `somme d'écho : $résultat` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` résultat `variable.
  6. `#Utilisation de la commande expr` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` expression ` commande pour les opérations arithmétiques.
  7. `somme=$(expr $num1 + $num2)` : Cette ligne utilise le ` expression ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` somme `variable. Notez que le ` expression La commande ` nécessite des espaces autour des opérateurs.
  8. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
  9. `#Utilisation de la commande let` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` laisser ` commande pour les opérations arithmétiques.
  10. `soit somme = num1 + num2″` : Cette ligne utilise le ` laisser ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et attribue le résultat au ` somme `variable. Le ' laisser La commande ` ne nécessite pas d'espaces autour des opérateurs.
  11. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
arithmétique

arithmétique

28) Créez un script qui vérifie si un hôte réseau est accessible.

Voici un simple script shell qui utilise la commande ping pour vérifier si un hôte réseau est accessible :

#!/bin/bash
hôte = 1 $″
si [ -z $hôte ]; alors
echo Utilisation : 0 $
sortie 1
être
ping -c 4 $hôte

si [ $? -éq 0 ]; alors
echo $host est accessible.
autre
echo $host n'est pas accessible.
être

Explication:

  1. Il prend un nom d'hôte ou une adresse IP comme argument et vérifie si l'argument est fourni.
  2. Si aucun argument n'est fourni, il affiche un message d'utilisation et se termine.
  3. Il utilise la commande ping avec l'option -c 4 pour envoyer quatre requêtes d'écho ICMP à l'hôte spécifié.
  4. Une fois la commande ping exécutée, elle vérifie l'état de sortie ($?). Si l'état de sortie est 0, cela signifie que l'hôte est joignable et le script imprime un message de réussite. Sinon, il imprime un message d'échec.

456

Note : Nous devons fournir un nom d'hôte comme argument lors de l'exécution du script. Ici, nous avons utilisé google.com

29) Écrivez un script Shell pour trouver le plus grand élément d'un tableau :

Voici un script shell pour trouver le plus grand élément d'un tableau.

#!/bin/bash
# Déclarer un tableau
tableau=(3 56 24 89 67)

# Initialiser une variable pour stocker la valeur maximale, en commençant par le premier élément

max=${tableau[0]}

# Parcourir le tableau

pour num dans ${array[@]} ; faire

# Comparez chaque élément avec le maximum actuel

si ((num> max)); alors
max=$num
être
fait

# Imprimer la valeur maximale

echo L'élément maximum dans le tableau est : $max

Explication:

  1. ` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.
  2. ` tableau=(3 56 24 89 67) ` : Le tableau est déclaré et initialisé avec des valeurs.
  3. ` max=${tableau[0]} ` : `max` est initialisé avec le premier élément du tableau.
  4. ` pour num dans ${array[@]} ; faire ` : Une boucle `for` est utilisée pour parcourir les éléments du tableau.
  5. ` si ((num> max)); alors ` : Une instruction `if` vérifie si l'élément actuel `num` est supérieur au maximum actuel `max`.
  6. ` max=$num` : Si`num ` est supérieur à `max`, `max` est mis à jour avec la valeur de num.
  7. ` fait ` : La boucle `for` est fermée.
  8. ` echo L'élément maximum dans le tableau est : $max ` : Enfin, le script imprime la valeur maximale trouvée dans le tableau.
461

le plus grand nombre

30) Écrivez un script pour calculer la somme des éléments dans un tableau.

#!/bin/bash

# Déclarer un tableau

tableau=(1 65 22 19 94)

# Initialiser une variable pour stocker la somme

somme=0

# Parcourez le tableau et ajoutez chaque élément à la somme

pour num dans ${array[@]} ; faire
matin=$((matin + matin))
fait

# Imprimer la somme

echo La somme des éléments du tableau est : $sum

Explication:

` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.

` tableau=(1 65 22 19 94) ` : Le tableau est déclaré et initialisé avec des valeurs.

` somme=0 `:` somme ` est initialisé à zéro pour contenir la somme des éléments.

` pour num dans ${array[@]} ; faire ` : Un ` pour ` La boucle est utilisée pour parcourir les éléments du tableau.

` matin=$((matin + matin)) ` : À l'intérieur de la boucle, chaque élément ` sur une ` est ajouté au ` somme `variable.

` fait ` : Le ` pour ` La boucle est fermée.

`echo La somme des éléments du tableau est : $sum` : Enfin, le script imprime la somme de tous les éléments du tableau.

462

Somme des éléments

En savoir plus sur les scripts Shell

Conclusion

Nous tous, les geeks, savons que le script shell est très utile pour augmenter la productivité du travail et pour gagner du temps. Donc, dans cet article, nous avons couvert 30 exemples de scripts shell très utiles et les plus conman . Nous espérons que ce guide complet sur l'exemple de script shell vous aidera à tout comprendre sur les scripts shell.




echo Premier argument : 
echo Deuxième argument : 

Si nous exécutons le script avec `.example.sh hello_1 hello_2`, il affichera :

arguments CLI

arguments CLI

11) Comment utilisez-vous la boucle for pour parcourir une liste de valeurs ?

Créez un nom de script « exemple.sh ».

#!/bin/bash

fruits=(pomme banane cerise datte)
pour les fruits dans ${fruits[@]} ; faire
echo Fruit actuel : $fruit
fait

Explication:

La ligne `fruits=` crée un tableau nommé fruits avec quatre éléments : pomme, banane, cerise et date.

  • pour les fruits dans ${fruits[@]} ; do : Cette ligne démarre une boucle for. Voici ce que signifie chaque partie :
  • pour fruit : ceci déclare une variable de boucle appelée fruit. À chaque itération de la boucle, fruit contiendra la valeur de l'élément actuel du tableau fruits.
  • ${fruits[@]} : Il s'agit d'une extension de tableau qui prend tous les éléments du tableau de fruits. La syntaxe ${…} garantit que chaque élément est traité comme un élément distinct.
  • do : ce mot-clé marque le début du corps de la boucle.
  • echo Fruit actuel : $fruit : À l'intérieur de la boucle, cette ligne utilise la commande echo pour afficher la valeur actuelle de la variable de boucle fruit. Il imprime un message comme Current fruit: apple pour chaque fruit du tableau.
  • done : ce mot-clé marque la fin du corps de la boucle. Il indique au script que la boucle est terminée.
pour la boucle

pour la boucle

12) Écrivez un script shell qui calcule la somme des entiers de 1 à N à l'aide d'une boucle.

Créez un nom de script « exemple.sh ».

#!/bin/bash

echo Entrez un nombre (N) :
lire N
somme=0
pour (( i=1; i<=$N; i++ )); faire
somme=$((somme + i))
fait
echo La somme des entiers de 1 à $N est : $sum

Explication:
Le script commence par vous demander de saisir un nombre (N) en utilisant read. Ce nombre déterminera combien de fois la boucle sera exécutée.

  1. La somme variable est initialisée à 0. Cette variable gardera une trace de la somme des entiers.
  2. La boucle for commence par for (( i=1; i<=$N; i++ )). Cette structure de boucle permet de répéter un ensemble d'actions un certain nombre de fois, en l'occurrence de 1 à la valeur de N.
  3. À l'intérieur de la boucle, ces choses se produisent :
    • i=1 définit la variable de boucle i sur 1 au début de chaque itération.
    • La condition de boucle i<=$N vérifie si i est toujours inférieur ou égal au nombre N donné.
    • Si la condition est vraie, le corps de la boucle s'exécute.
    • sum=$((sum + i)) calcule la nouvelle valeur de sum en y ajoutant la valeur actuelle de i. Cela additionne les entiers de 1 à la valeur i actuelle.
  4. Après chaque itération, i++ incrémente la valeur de i de 1.
  5. La boucle continue de s'exécuter jusqu'à ce que la condition i<=$N devienne fausse (lorsque i devient supérieur à N).
  6. Une fois la boucle terminée, le script affiche la somme des entiers de 1 au nombre N saisi.

439

13) Créez un script qui recherche un mot spécifique dans un fichier et compte ses occurrences.

Créez un nom de script `word_count.sh`

#!/bin/bash

echo Saisissez le mot à rechercher :
lire mot_cible
echo Entrez le nom du fichier :
lire le nom du fichier
count=$(grep -o -w $target_word $filename | wc -l)
echo Le mot « $target_word » apparaît $count fois dans « $filename ».

Explication:

  • echo Saisissez le mot à rechercher : : Cette ligne affiche un message demandant à l'utilisateur de saisir le mot qu'il souhaite rechercher dans un fichier.
  • read target_word : cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée target_word.
  • echo Entrez le nom du fichier : : Cette ligne affiche un message demandant à l'utilisateur de saisir le nom du fichier dans lequel il souhaite effectuer la recherche.
  • read filename : Cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée filename.
  • count=$(grep -o -w $target_word $filename | wc -l) : Cette ligne effectue le travail principal du script. Décomposons-le davantage :
    • grep -o -w $target_word $filename : Cette partie de la commande recherche les occurrences du target_word dans le nom de fichier spécifié. Les options -o et -w garantissent que seules les correspondances de mots entiers sont prises en compte.
    • | : Il s'agit d'un canal qui prend la sortie de la commande précédente et l'envoie en entrée à la commande suivante.
    • wc -l : Cette partie de la commande utilise la commande wc pour compter le nombre de lignes dans l'entrée. L'option -l compte spécifiquement les lignes.
    • La commande entière calcule le nombre d'occurrences du mot_cible dans le fichier et attribue ce nombre à la variable count.

441

14) Expliquez les différences entre la sortie standard (stdout) et l'erreur standard (stderr).

La principale différence entre la sortie standard (stdout) et l'erreur standard (stderr) est la suivante :

  • Sortie standard (sortie standard) : Il s’agit du flux de sortie par défaut vers lequel va la sortie régulière d’une commande. Il est affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant>.
  • Erreur standard (stderr) : Il s'agit du flux de sortie des messages d'erreur et des avertissements. Il est également affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant 2>.

15) Expliquez le concept d'instructions conditionnelles dans les scripts shell.

Instructions conditionnelles dans les scripts shell nous permettent de prendre des décisions et de contrôler le déroulement de notre script en fonction de certaines conditions. Ils permettent à notre script d'exécuter différents ensembles de commandes selon qu'une condition particulière est vraie ou fausse. Les principales instructions conditionnelles dans les scripts shell sont l'instruction if, l'instruction elif (facultatif) et l'instruction else (facultatif).

Voici la structure de base d’une instruction conditionnelle dans les scripts shell :

si [condition]; alors
# Commandes à exécuter si la condition est vraie
elif [ autre_condition ]; alors
# Commandes à exécuter si another_condition est vraie (facultatif)
autre
# Commandes à exécuter si aucune des conditions n'est vraie (facultatif)
être

Explication:

  • [ condition ] = Commande qui évalue la condition et renvoie un statut de sortie vrai (0) ou faux (différent de zéro).
  • then = C'est un mot-clé qui indique que les commandes qui le suivent seront exécutées si la condition est évaluée comme vraie.
  • elif = (abréviation de else if) C'est une section qui nous permet de spécifier des conditions supplémentaires à vérifier.
  • else = c'est une section qui contient des commandes qui seront exécutées si aucune des conditions n'est vraie.
  • fi = C'est un mot-clé qui marque la fin du bloc conditionnel.

16) Comment lire les lignes d'un fichier dans un script shell ?

À lire des lignes à partir d'un fichier dans un script shell, nous pouvons utiliser diverses méthodes, mais une approche courante consiste à utiliser une boucle while en combinaison avec la commande read. Voici comment nous pouvons procéder :

#!/bin/bash
fichier=/home/jayeshkumar/jayesh.txt
# Vérifiez si le fichier existe
si [ -e $fichier ]; alors
while IFS= read -r ligne ; faire
echo Ligne lue : $line
# Ajoutez votre logique de traitement ici
fait <$fichier
autre
echo Fichier introuvable : $file
être

Explication:

  1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
  2. file=/home/jayeshkumar/jayesh.txt : Cette ligne définit le fichier de variables et attribue le chemin complet au fichier jayesh.txt dans le répertoire /home/jayeshkumar. Modifiez ce chemin pour qu'il corresponde au chemin réel du fichier que vous souhaitez lire.
  3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. Il vérifie si le fichier spécifié par la variable $file existe. L'indicateur -e vérifie l'existence du fichier.
  4. while IFS= read -r ligne ; do : Cette ligne initie une boucle while qui lit les lignes du fichier.
    • IFS= : IFS (Internal Field Separator) est défini sur une valeur vide pour préserver les espaces de début et de fin.
    • read -r line : ceci lit la ligne actuelle du fichier et la stocke dans la ligne variable.
  5. echo Line read : $line : Cette ligne imprime le contenu de la ligne qui a été lue dans le fichier. La variable $line contient le contenu de la ligne courante.
  6. # Ajoutez votre logique de traitement ici : Il s'agit d'un commentaire fictif dans lequel vous pouvez ajouter votre propre logique pour traiter chaque ligne. Par exemple, vous pouvez analyser la ligne, extraire des informations ou effectuer des actions spécifiques en fonction du contenu.
  7. done <$file : Ceci marque la fin de la boucle while. Le < $file redirige le contenu du fichier à lire par la boucle.
  8. else : si le fichier n'existe pas (la condition dans l'instruction if est fausse), le script exécute le code sous la branche else.
  9. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé.
  10. fi : Cette ligne marque la fin de l'instruction if.
lecture d'un fichier

lecture d'un fichier

Ici , nous avons utilisé ` mot de passe ` pour obtenir le chemin du répertoire courant.

commandes Kali Linux

17) Écrivez une fonction dans un script shell qui calcule la factorielle d'un nombre donné.

Voici le script quicalculer la factorielled'un nombre donné.

#!/bin/bash
# Définir une fonction pour calculer factorielle
calculer_factorial() {
num=
fait=1
pour ((i=1; i<=num; i++)); faire
fait=$((fait * i))
fait
écho $fait
}
# Inviter l'utilisateur à saisir un numéro
echo Entrez un numéro :
lire num_entrée
# Appelez la fonction calculate_factorial avec le numéro d'entrée
factorial_result=$(calculate_factorial $input_num)
# Afficher le résultat factoriel
echo Factorielle de $input_num est : $factorial_result

Explication:

  1. Le script commence par la ligne shebang #!/bin/bash pour spécifier l'interpréteur.
  2. calculate_factorial() est défini comme une fonction. Il faut un argument, num, qui est le nombre pour lequel la factorielle doit être calculée.
  3. A l'intérieur de la fonction, fact est initialisé à 1. Cette variable stockera le résultat factoriel.
  4. La boucle for parcourt de 1 au nombre donné (num). À chaque itération, il multiplie la valeur actuelle du fait par l'indice de boucle i.
  5. Une fois la boucle terminée, la variable de fait contient la factorielle calculée.
  6. Le script invite l'utilisateur à saisir un nombre en utilisant read.
  7. La fonction calculate_factorial est appelée avec le numéro fourni par l'utilisateur et le résultat est stocké dans la variable factorial_result.
  8. Enfin, le script affiche le résultat factoriel calculé.
Factorielle

Factorielle

18) Comment gérez-vous les signaux comme Ctrl+C dans un script shell ?

Dans un script shell, vous pouvez gérer des signaux tels que Ctrl+C (également appelé SIGINT) à l'aide de la commande trap. Ctrl+C génère un signal SIGINT lorsque l'utilisateur appuie dessus pour interrompre le script ou le programme en cours d'exécution. En utilisant la commande trap, vous pouvez spécifier les actions à entreprendre lorsqu'un signal particulier est reçu. Voici comment gérer les signaux tels que Ctrl+C dans un script shell :

#!/bin/bash
nettoyer() {
echo Script interrompu. Effectuer un nettoyage…
# Ajoutez vos actions de nettoyage ici
sortie 1
}
# Configurer un piège pour appeler la fonction de nettoyage lorsque Ctrl+C (SIGINT) est reçu
nettoyage des pièges SIGINT
# Reste de votre script
écho En cours d'exécution…
dormir 10
écho Terminé.

La gestion des signaux est importante pour rendre les scripts robustes et garantir qu'ils gèrent les interruptions inattendues avec élégance. Vous pouvez personnaliser la fonction de nettoyage en fonction de vos besoins spécifiques, comme la fermeture de fichiers, l'arrêt de processus ou la journalisation d'informations avant la fermeture du script.

Explication:

  1. #!/bin/bash : Cette ligne shebang spécifie l'interpréteur à utiliser pour exécuter le script.
  2. cleanup() { … } : Ceci définit une fonction nommée cleanup. Dans cette fonction, vous pouvez inclure toutes les actions qui doivent être effectuées lorsque le script est interrompu, telles que la fermeture de fichiers, la libération de ressources ou l'exécution d'autres tâches de nettoyage.
  3. trap cleanup SIGINT : La commande trap est utilisée pour configurer un gestionnaire de signal. Dans ce cas, il précise que lorsque le signal SIGINT (Ctrl+C) est reçu, la fonction de nettoyage doit être exécutée.
  4. echo Running…, sleep 10, echo Finished. : Ce ne sont que des exemples de commandes pour simuler l’exécution d’un script.

446

19) Créez un script qui recherche et supprime les lignes en double dans un fichier texte.

Voici notre script Linux dans lequel nous supprimerons les lignes en double d'un fichier texte.

#!/bin/bash
fichier_entrée=entrée.txt
fichier_de sortie=sortie.txt
trier $input_file | uniq> $fichier_sortie
echo Les lignes en double ont été supprimées avec succès.

Explication:

  1. Le script commence par un shebang (#!/bin/bash), qui indique que le script doit être interprété à l'aide du shell Bash.
  2. La variable input_file est définie sur le nom du fichier d'entrée contenant des lignes en double (remplacez-le par le nom réel de votre fichier d'entrée).
  3. La variable output_file est définie sur le nom du fichier de sortie où les doublons seront supprimés (remplacez-le par le nom du fichier de sortie souhaité).
  4. Le script utilise la commande sort pour trier les lignes du fichier d'entrée. Le tri des lignes garantit que les lignes en double sont regroupées.
  5. Les lignes triées sont ensuite transmises via la commande uniq, qui supprime les lignes consécutives en double. La sortie de ce processus est redirigée vers le fichier de sortie.
  6. Une fois les doublons supprimés, le script imprime un message de réussite.
suppression de ligne en double

suppression de ligne en double

Ici, nous utilisons ` chat ` pour afficher le texte à l'intérieur du fichier texte.

20) Écrivez un script qui génère un mot de passe aléatoire sécurisé.

Voici notre script pour générer un mot de passe aléatoire sécurisé.

#!/bin/bash
# Fonction pour générer un mot de passe aléatoire
créer un mot de passe() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Appelez la fonction et stockez le mot de passe généré
mot de passe=$(generate_password)
echo Mot de passe généré : $password

Remarque : L'utilisateur peut en conséquence modifier la longueur de son mot de passe en remplaçant le chiffre « 12 ».

Explication:

  1. Le script commence par un shebang (#!/bin/bash), indiquant qu'il doit être interprété à l'aide du shell Bash.
  2. La fonction generate_password est définie pour générer un mot de passe aléatoire. Voici comment cela fonctionne:
    • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    • Fold -w 12 divise les données aléatoires filtrées en lignes de 12 caractères chacune.
    • head -n 1 sélectionne la première ligne, nous donnant effectivement une séquence aléatoire de caractères de longueur 12.
  3. La variable password reçoit le résultat de l'appel de la fonction generate_password.
  4. Enfin, le mot de passe généré est affiché en utilisant echo.

448

21) Écrivez un script shell qui calcule la taille totale de tous les fichiers d'un répertoire.

Voici un script shell pour calculer la taille totale de tous les fichiers d'un répertoire.

#!/bin/bash
répertoire=/chemin/vers/votre/répertoire
total_size=$(du -csh $directory | grep total | awk '{print }')
echo Taille totale des fichiers dans $directory : $total_size

Explication:

  1. Le script commence par le shebang #!/bin/bash, indiquant qu'il doit être interprété à l'aide du shell Bash.
  2. La variable directory est définie sur le chemin du répertoire pour lequel vous souhaitez calculer la taille totale du fichier. Remplacez /path/to/your/directory par le chemin réel.
  3. La commande du est utilisée pour estimer l'utilisation de l'espace fichier. Les options utilisées sont :
    • -c : produit un total général.
    • -s : affiche uniquement la taille totale du répertoire spécifié.
    • -h : tailles d'impression dans un format lisible par l'homme (par exemple, Ko, Mo, Go).
  4. La sortie de du est redirigée vers grep total pour filtrer la ligne qui contient la taille totale.
  5. awk '{print }' est utilisé pour extraire le premier champ (taille totale) de la ligne.
  6. La taille totale calculée est stockée dans la variable total_size.
  7. Enfin, le script affiche la taille totale en utilisant echo.
Taille totale des fichiers

Taille totale des fichiers

Ici , nous avons utilisé ` mot de passe ` pour voir le chemin du répertoire actuel.

22) Expliquez la différence entre les instructions if et elif dans les scripts shell.

Fonctionnalité `if`Staiftement Déclaration `elif`
But Expliquez la différence entre les instructions if et elif dans les scripts shell. Fournit des conditions alternatives pour vérifier lorsque la condition if initiale est fausse.
usage Utilisé pour la condition initiale. Utilisé après la condition if initiale pour vérifier des conditions supplémentaires.
nombre de blocs Ne peut en avoir qu'un seul if block. Peut avoir plusieurs blocs elif, mais un seul bloc else (facultatif).
Exécution Exécute le bloc de code associé à l'instruction if si la condition est vraie. Si la condition est fausse, le bloc else (s'il est présent) est exécuté (facultatif). Vérifie chaque condition elif dans l'ordre. Si une condition elif est vraie, le bloc de code correspondant est exécuté et le script quitte l'intégralité du bloc conditionnel. Si aucune des conditions elif n'est vraie, le bloc else (s'il est présent) est exécuté.
Structures imbriquées Peut être imbriqué dans d’autres blocs if, elif ou else. Ne peut pas être imbriqué dans un autre bloc elif, mais peut être utilisé dans un bloc if ou else.

Comprenons-le par un exemple.

#!/bin/bash
nombre=5
si [ $numéro -gt 10 ]; alors
echo $le nombre est supérieur à 10
autre
echo $le nombre n'est pas supérieur à 10
être
écho ---
si [ $numéro -gt 10 ]; alors
echo $le nombre est supérieur à 10
elif [ $numéro -eq 10 ]; alors
echo $number est égal à 10
autre
echo $le nombre est inférieur à 10
être

Explication:

Dans cet exemple, le premier bloc if vérifie si le nombre est supérieur à 10. Sinon, il imprime un message indiquant que le nombre n'est pas supérieur à 10. Le deuxième bloc avec les instructions elif vérifie plusieurs conditions séquentiellement jusqu'à ce que l'une d'entre elles soit vraie. Dans ce cas, puisque la valeur du nombre est 5, le résultat sera :

différence if_elif

différence if_elif

23) Comment utiliser une boucle while pour exécuter des commandes à plusieurs reprises ?

Une boucle while est utilisée dans les scripts shell pour exécuter de manière répétée un ensemble de commandes tant qu'une condition spécifiée est vraie. La boucle continue d'exécuter les commandes jusqu'à ce que la condition devienne fausse.

conversion d'une chaîne en entier

Voici la syntaxe de base d’une boucle while :

tandis que [ condition ]; faire
# Commandes à exécuter
fait

Explication:

  1. La boucle « while » commence par le mot-clé « while » suivi d'une condition entre crochets « [ ] ».
  2. Le corps de la boucle, qui contient les commandes à exécuter, est entouré des mots-clés « do » et « done ».
  3. La boucle vérifie d'abord la condition. Si la condition est vraie, les commandes contenues dans le corps de la boucle sont exécutées. Une fois le corps de la boucle exécuté, la condition est à nouveau vérifiée et le processus se répète jusqu'à ce que la condition devienne fausse.

Exemple: Si nous voulons imprimer des nombres de 1 à 5

#!/bin/bash
compteur=1
while [ $counter -le 5 ]; faire
Numéro d'écho : $compteur
compteur=$((compteur + 1))
fait

Explication:

  • La variable compteur est mise à 1.
  • La boucle while vérifie si la valeur du compteur est inférieure ou égale à 5. Tant que cette condition est vraie, la boucle continue de s'exécuter.
  • À l'intérieur de la boucle, la valeur actuelle du compteur est imprimée en utilisant echo.
  • Le compteur est incrémenté de 1 à l'aide de l'expression $((counter + 1)).
boucle while

boucle while

24) Créez un script shell qui recherche et répertorie tous les fichiers vides dans un répertoire.

Script Shell que vous pouvez utiliser pour rechercher et lister tous les fichiers vides dans un répertoire à l'aide des commandes `find` et `stat` :

#!/bin/bash
répertoire=″
if [ -z $répertoire ]; alors
echo Utilisation : 0 $
sortie 1
être

si [ ! -d $répertoire ]; alors
echo Erreur : « $directory » n'est pas un répertoire valide.
sortie 1
être
echo Fichiers vides dans $répertoire :
trouver $répertoire -type f -vide

Explication:

  1. ` #!/bin/bash ` : C'est ce qu'on appelle un shebang, et cela indique au système d'exploitation d'utiliser le shell Bash pour interpréter et exécuter le script.
  2. ` répertoire=″ ` : Cette ligne attribue le premier argument de ligne de commande (noté ) à la variable ` annuaire `.
  3. ` if [ -z $répertoire ]; alors ` : Cette ligne démarre une instruction if qui vérifie si le ` annuaire ` La variable est vide (-z teste une chaîne vide).
  4. ` echo Utilisation : 0 $ ` : Si le répertoire est vide, cette ligne affiche un message d'utilisation, où ` 0 $ ` représente le nom du script.
  5. ` sortie 1 ` : Cette ligne quitte le script avec un code de sortie de ` 1 `, indiquant une erreur.
  6. ` être ` : Cette ligne marque la fin du ` si `déclaration.
  7. ` si [ ! -d $répertoire ]; alors ` : Cela démarre une autre instruction if pour vérifier si le répertoire fourni existe (` -d ` teste un répertoire).
  8. ` echo Erreur : « $directory » n'est pas un répertoire valide. ` : Si le répertoire fourni n'existe pas, cette ligne affiche un message d'erreur.
  9. ` sortie 1 ` : Quitte le script avec un code de sortie de ` 1 `.
  10. ` être ` : marque la fin de la seconde ` si` déclaration.
  11. ` echo Fichiers vides dans $répertoire : ` : Si tout est valide jusqu'à présent, cette ligne imprime un message indiquant que le script listera les fichiers vides dans le répertoire spécifié.
  12. ` trouver $répertoire -type f -vide ` : Cette ligne utilise le ` trouver ` commande pour rechercher des fichiers vides (` -vide `) de type fichiers normaux (` -type f `) dans le répertoire spécifié. Il répertorie ensuite ces fichiers vides.
Trouver des fichiers vides

Trouver des fichiers vides

Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/

25) Quel est le but de la commande read dans les scripts shell ?

La commande read dans les scripts shell permet au script de vous demander des informations. C'est comme lorsqu'un ordinateur vous pose une question et attend votre réponse. Ceci est utile pour les scripts qui nécessitent que vous tapiez quelque chose ou lorsque le script doit travailler avec des informations provenant de fichiers. La commande read aide le script à s'arrêter et à attendre ce que vous tapez, puis il peut utiliser ces informations pour faire plus de choses dans le script.

Syntaxe de la commande read :

read variable_name>

Exemple : Si nous voulons prendre le nom comme entrée de l'utilisateur pour l'imprimer.

#!/bin/bash
echo Veuillez entrer votre nom :
lire le nom
echo Bonjour, $name !

453

lire le nom

En résumé, la commande read est utilisée pour capturer les entrées utilisateur ou les données des fichiers dans des scripts shell, rendant les scripts plus interactifs et polyvalents.

26) Écrivez un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

Voici un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

#!/bin/bash
répertoire=″
if [ -z $répertoire ]; alors
echo Utilisation : 0 $
sortie 1
être

si [ ! -d $répertoire ]; alors

echo Erreur : « $directory » n'est pas un répertoire valide.
sortie 1
être

cd $répertoire || sortie 1

pour le fichier dans * ; faire
si [ -f $fichier ]; alors
nouveau nom=$(echo $file | tr 'A-Z' 'a-z')
[ $file != $nouveau nom ] && mv $file $nouveau nom
être
fait

Explication:

  1. #!/bin/bash : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
  2. répertoire=″ : Cette ligne attribue le premier argument de ligne de commande au répertoire de variables.
  3. if [ -z $répertoire ]; alors : Cette ligne vérifie si la variable répertoire est vide (aucun argument fourni lors de l'exécution du script).
  4. echo Utilisation : 0 $ : Si le répertoire est vide, cette ligne imprime un message d'utilisation avec le nom du script (

    Pour toutes les distributions Linux, le script shell est comme une baguette magique qui automatise le processus, fait gagner du temps aux utilisateurs et augmente la productivité. Ce didacticiel sur les scripts doit vous présenter plus de 25 exemples de scripts.

    Mais avant de passer au sujet de script shell exemples, comprenons le script shell et les cas d’utilisation réels des scripts shell.

    Qu’est-ce que le script Shell ?

    Eh bien, la coquille est un CLI ( interpréteur de ligne de commande ), qui s'exécute dans une fenêtre de texte dans laquelle les utilisateurs peuvent gérer et exécuter des commandes shell. D'autre part, le processus d'écriture d'un ensemble de commandes à exécuter sur un système Linux. Un fichier contenant de telles instructions est appelé un script bash.

    Utilisations des scripts Shell

    Vous trouverez ci-dessous quelques utilisations courantes de Shell Script :

    • Automatisation des tâches – Il peut être utilisé pour automatiser des tâches répétitives telles que des sauvegardes régulières et des tâches d'installation de logiciels.
    • Personnalisation – On peut utiliser des scripts shell pour concevoir son environnement de ligne de commande et effectuer facilement sa tâche selon les besoins.
    • Gestion de fichiers - Les scripts shell peuvent également être utilisés pour gérer et manipuler des fichiers et des répertoires, comme déplacer, copier, renommer ou supprimer des fichiers.

    Exemples de scripts Shell sous Linux

    1) Qu'indique le shebang (#!) au début d'un script shell ?

    Le shebang (#!) au début d'un script indique l'interpréteur qui doit être utilisé pour exécuter le script. Il indique au système quel shell ou interpréteur doit interpréter les commandes du script.

    Par exemple: Supposons que nous ayons un script nommé monscript.sh écrit dans le shell Bash :

    case

    case

    Dans cet exemple :

    • Le #!/bin/bash au début du script indique que le script doit être interprété à l'aide du shell Bash.
    • Les commandes echo sont utilisées pour imprimer des messages sur le terminal.

    2) Comment exécuter un script shell à partir de la ligne de commande ?

    Pour exécuter un script shell à partir de la ligne de commande, nous devons suivre ces étapes :

    • Assurez-vous que le fichier de script dispose des autorisations exécutables à l'aide du commande chmod :
    chmod +x myscript.sh>
    • Exécutez le script en utilisant son nom de fichier :
    ./myscript.sh>

    Ici, vous devez remplacer monscript.sh avec votre nom de script.

    3) Écrivez un script shell qui imprime techcodeview.com sur le terminal.

    Créez un nom de script `myscript.sh` (nous utilisons ` parce que ` éditeur, vous pouvez choisir n'importe quel éditeur)

    vim myscript.sh>

    #!/bin/bash
    # Ce script imprime techcodeview.com sur le terminal
    écho techcodeview.com

    imprimer le nom

    imprimer le nom

    Nous rendons notre script exécutable en utilisant `chmod +x` puis nous l'exécutons avec `./myscipt.sh` et obtenons la sortie souhaitée techcodeview.com.

    4) Expliquez le but de la commande echo dans les scripts shell.

    Le commande d'écho est utilisé pour afficher du texte ou des variables sur le terminal. Il est couramment utilisé pour imprimer des messages, des valeurs de variables et générer une sortie de programme.

    434

    commande d'écho

    Dans cet exemple, nous devons exécuter `echo` directement sur le terminal, car cela fonctionne de la même manière dans le script shell.

    5) Comment attribuer une valeur à une variable dans un script shell ?

    Les variables reçoivent des valeurs à l'aide de l'opérateur d'affectation =.

    Par exemple:

    #!/bin/bash
    # Attribuer une valeur à une variable
    nom = Jayesh
    âge=21
    echo $nom $age

    Explication:

    • La variable de nom reçoit la valeur Jayesh.
    • La variable âge reçoit la valeur 21.
    • echo est utilisé pour imprimer et `$name` `$age` est utilisé pour appeler la valeur stockée dans les variables.

    435

    6) Écrivez un script shell qui prend le nom d'un utilisateur en entrée et le salue.

    Créez un nom de script « exemple.sh ».

    #!/bin/bash
    # Demander à l'utilisateur son nom
    écho Quel est ton nom ?
    lire le nom
    # Saluer l'utilisateur
    echo Bonjour, $name ! Ravi de vous rencontrer.

    Explication:

    • #!/bin/bash : C'est la ligne shebang. Il indique au système d'utiliser l'interpréteur Bash pour exécuter le script.
    • # Demander à l'utilisateur son nom : Ceci est un commentaire. Il fournit un contexte sur le code à venir. Les commentaires sont ignorés par l'interprète.
    • echo Quel est ton nom ? : La commande echo permet d'afficher le texte entre guillemets doubles sur le terminal.
    • read name : la commande read attend que l'utilisateur saisisse du texte et le stocke dans le nom de la variable.
    • echo Bonjour, $name ! Ravi de vous rencontrer. : Cette ligne utilise la commande echo pour imprimer un message de bienvenue qui inclut la valeur de la variable name, qui a été collectée à partir de l'entrée de l'utilisateur.

    436

    7) Comment ajouter des commentaires à un script shell ?

    Commentaires dans les scripts shell sont utilisés pour fournir des explications ou un contexte au code. Ils sont ignorés par l’interprète et ne sont destinés qu’aux humains lisant le script. Vous pouvez ajouter des commentaires en utilisant le symbole #.

    #!/bin/bash
    # Ceci est un commentaire expliquant le but du script
    écho gfg

    8) Créez un script shell qui vérifie si un fichier existe dans le répertoire actuel.

    Voici un script qui vérifie si un fichier nommé exemple.txt existe dans le répertoire courant :

    #!/bin/bash
    fichier=exemple.txt
    # Vérifiez si le fichier existe
    si [ -e $fichier ]; alors
    echo Le fichier existe : $file
    autre
    echo Fichier introuvable : $file
    être

    Explication:

    1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
    2. file=example.txt : Cette ligne définit le fichier de variables et lui attribue la valeur example.txt. Vous pouvez le remplacer par le nom du fichier que vous souhaitez rechercher.
    3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. La condition [ -e $file ] vérifie si le fichier spécifié par la valeur de la variable file existe. L'indicateur -e est utilisé pour vérifier l'existence du fichier.
    4. echo Le fichier existe : $file : Si la condition est vraie (c'est-à-dire que le fichier existe), cette ligne imprime un message indiquant que le fichier existe, ainsi que le nom du fichier.
    5. else : si la condition est fausse (c'est-à-dire que le fichier n'existe pas), le script exécute le code sous la branche else.
    6. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé, ainsi que le nom du fichier.
    7. fi : Cette ligne marque la fin de l'instruction if.
    Recherche de fichier

    Recherche de fichier

    9) Quelle est la différence entre les guillemets simples (') et les guillemets doubles () dans les scripts shell ?

    Les guillemets simples (') et les guillemets doubles () sont utilisés pour délimiter des chaînes dans les scripts shell, mais ils ont des comportements différents :

    • Guillemets simples : tout ce qui se trouve entre guillemets simples est traité comme une chaîne littérale. Les noms de variables et la plupart des caractères spéciaux ne sont pas développés.
    • Guillemets doubles : les variables et certains caractères spéciaux entre guillemets doubles sont développés. Le contenu est soumis à la substitution de variables et à la substitution de commandes.

    #!/bin/bash

    abcd=Bonjour
    echo '$abcd' # Sortie : $abcd
    echo $abcd # Sortie : Bonjour

    10) Comment utiliser les arguments de ligne de commande dans un script shell ?

    Arguments de ligne de commande sont des valeurs fournies à un script lors de son exécution. Ils sont accessibles dans le script à l'aide de variables spéciales telles que $1, $2, etc., où $1 représente le premier argument, $2 représente le deuxième argument, et ainsi de suite.

    Par exemple: Si le nom de notre script dans `example.sh`

    #!/bin/bash

    echo Nom du script : $0
    echo Premier argument : $1
    echo Deuxième argument : $2

    Si nous exécutons le script avec `.example.sh hello_1 hello_2`, il affichera :

    arguments CLI

    arguments CLI

    11) Comment utilisez-vous la boucle for pour parcourir une liste de valeurs ?

    Créez un nom de script « exemple.sh ».

    #!/bin/bash

    fruits=(pomme banane cerise datte)
    pour les fruits dans ${fruits[@]} ; faire
    echo Fruit actuel : $fruit
    fait

    Explication:

    La ligne `fruits=` crée un tableau nommé fruits avec quatre éléments : pomme, banane, cerise et date.

    • pour les fruits dans ${fruits[@]} ; do : Cette ligne démarre une boucle for. Voici ce que signifie chaque partie :
    • pour fruit : ceci déclare une variable de boucle appelée fruit. À chaque itération de la boucle, fruit contiendra la valeur de l'élément actuel du tableau fruits.
    • ${fruits[@]} : Il s'agit d'une extension de tableau qui prend tous les éléments du tableau de fruits. La syntaxe ${…} garantit que chaque élément est traité comme un élément distinct.
    • do : ce mot-clé marque le début du corps de la boucle.
    • echo Fruit actuel : $fruit : À l'intérieur de la boucle, cette ligne utilise la commande echo pour afficher la valeur actuelle de la variable de boucle fruit. Il imprime un message comme Current fruit: apple pour chaque fruit du tableau.
    • done : ce mot-clé marque la fin du corps de la boucle. Il indique au script que la boucle est terminée.
    pour la boucle

    pour la boucle

    12) Écrivez un script shell qui calcule la somme des entiers de 1 à N à l'aide d'une boucle.

    Créez un nom de script « exemple.sh ».

    #!/bin/bash

    echo Entrez un nombre (N) :
    lire N
    somme=0
    pour (( i=1; i<=$N; i++ )); faire
    somme=$((somme + i))
    fait
    echo La somme des entiers de 1 à $N est : $sum

    Explication:
    Le script commence par vous demander de saisir un nombre (N) en utilisant read. Ce nombre déterminera combien de fois la boucle sera exécutée.

    1. La somme variable est initialisée à 0. Cette variable gardera une trace de la somme des entiers.
    2. La boucle for commence par for (( i=1; i<=$N; i++ )). Cette structure de boucle permet de répéter un ensemble d'actions un certain nombre de fois, en l'occurrence de 1 à la valeur de N.
    3. À l'intérieur de la boucle, ces choses se produisent :
      • i=1 définit la variable de boucle i sur 1 au début de chaque itération.
      • La condition de boucle i<=$N vérifie si i est toujours inférieur ou égal au nombre N donné.
      • Si la condition est vraie, le corps de la boucle s'exécute.
      • sum=$((sum + i)) calcule la nouvelle valeur de sum en y ajoutant la valeur actuelle de i. Cela additionne les entiers de 1 à la valeur i actuelle.
    4. Après chaque itération, i++ incrémente la valeur de i de 1.
    5. La boucle continue de s'exécuter jusqu'à ce que la condition i<=$N devienne fausse (lorsque i devient supérieur à N).
    6. Une fois la boucle terminée, le script affiche la somme des entiers de 1 au nombre N saisi.

    439

    13) Créez un script qui recherche un mot spécifique dans un fichier et compte ses occurrences.

    Créez un nom de script `word_count.sh`

    #!/bin/bash

    echo Saisissez le mot à rechercher :
    lire mot_cible
    echo Entrez le nom du fichier :
    lire le nom du fichier
    count=$(grep -o -w $target_word $filename | wc -l)
    echo Le mot « $target_word » apparaît $count fois dans « $filename ».

    Explication:

    • echo Saisissez le mot à rechercher : : Cette ligne affiche un message demandant à l'utilisateur de saisir le mot qu'il souhaite rechercher dans un fichier.
    • read target_word : cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée target_word.
    • echo Entrez le nom du fichier : : Cette ligne affiche un message demandant à l'utilisateur de saisir le nom du fichier dans lequel il souhaite effectuer la recherche.
    • read filename : Cette ligne lit l'entrée fournie par l'utilisateur et la stocke dans une variable nommée filename.
    • count=$(grep -o -w $target_word $filename | wc -l) : Cette ligne effectue le travail principal du script. Décomposons-le davantage :
      • grep -o -w $target_word $filename : Cette partie de la commande recherche les occurrences du target_word dans le nom de fichier spécifié. Les options -o et -w garantissent que seules les correspondances de mots entiers sont prises en compte.
      • | : Il s'agit d'un canal qui prend la sortie de la commande précédente et l'envoie en entrée à la commande suivante.
      • wc -l : Cette partie de la commande utilise la commande wc pour compter le nombre de lignes dans l'entrée. L'option -l compte spécifiquement les lignes.
      • La commande entière calcule le nombre d'occurrences du mot_cible dans le fichier et attribue ce nombre à la variable count.

    441

    14) Expliquez les différences entre la sortie standard (stdout) et l'erreur standard (stderr).

    La principale différence entre la sortie standard (stdout) et l'erreur standard (stderr) est la suivante :

    • Sortie standard (sortie standard) : Il s’agit du flux de sortie par défaut vers lequel va la sortie régulière d’une commande. Il est affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant>.
    • Erreur standard (stderr) : Il s'agit du flux de sortie des messages d'erreur et des avertissements. Il est également affiché par défaut sur le terminal. Vous pouvez le rediriger vers un fichier en utilisant 2>.

    15) Expliquez le concept d'instructions conditionnelles dans les scripts shell.

    Instructions conditionnelles dans les scripts shell nous permettent de prendre des décisions et de contrôler le déroulement de notre script en fonction de certaines conditions. Ils permettent à notre script d'exécuter différents ensembles de commandes selon qu'une condition particulière est vraie ou fausse. Les principales instructions conditionnelles dans les scripts shell sont l'instruction if, l'instruction elif (facultatif) et l'instruction else (facultatif).

    Voici la structure de base d’une instruction conditionnelle dans les scripts shell :

    si [condition]; alors
    # Commandes à exécuter si la condition est vraie
    elif [ autre_condition ]; alors
    # Commandes à exécuter si another_condition est vraie (facultatif)
    autre
    # Commandes à exécuter si aucune des conditions n'est vraie (facultatif)
    être

    Explication:

    • [ condition ] = Commande qui évalue la condition et renvoie un statut de sortie vrai (0) ou faux (différent de zéro).
    • then = C'est un mot-clé qui indique que les commandes qui le suivent seront exécutées si la condition est évaluée comme vraie.
    • elif = (abréviation de else if) C'est une section qui nous permet de spécifier des conditions supplémentaires à vérifier.
    • else = c'est une section qui contient des commandes qui seront exécutées si aucune des conditions n'est vraie.
    • fi = C'est un mot-clé qui marque la fin du bloc conditionnel.

    16) Comment lire les lignes d'un fichier dans un script shell ?

    À lire des lignes à partir d'un fichier dans un script shell, nous pouvons utiliser diverses méthodes, mais une approche courante consiste à utiliser une boucle while en combinaison avec la commande read. Voici comment nous pouvons procéder :

    #!/bin/bash
    fichier=/home/jayeshkumar/jayesh.txt
    # Vérifiez si le fichier existe
    si [ -e $fichier ]; alors
    while IFS= read -r ligne ; faire
    echo Ligne lue : $line
    # Ajoutez votre logique de traitement ici
    fait <$fichier
    autre
    echo Fichier introuvable : $file
    être

    Explication:

    1. #!/bin/bash : Il s'agit de la ligne shebang qui spécifie l'interpréteur (/bin/bash) à utiliser pour exécuter le script.
    2. file=/home/jayeshkumar/jayesh.txt : Cette ligne définit le fichier de variables et attribue le chemin complet au fichier jayesh.txt dans le répertoire /home/jayeshkumar. Modifiez ce chemin pour qu'il corresponde au chemin réel du fichier que vous souhaitez lire.
    3. si [ -e $fichier ]; then : Cette ligne commence une instruction if. Il vérifie si le fichier spécifié par la variable $file existe. L'indicateur -e vérifie l'existence du fichier.
    4. while IFS= read -r ligne ; do : Cette ligne initie une boucle while qui lit les lignes du fichier.
      • IFS= : IFS (Internal Field Separator) est défini sur une valeur vide pour préserver les espaces de début et de fin.
      • read -r line : ceci lit la ligne actuelle du fichier et la stocke dans la ligne variable.
    5. echo Line read : $line : Cette ligne imprime le contenu de la ligne qui a été lue dans le fichier. La variable $line contient le contenu de la ligne courante.
    6. # Ajoutez votre logique de traitement ici : Il s'agit d'un commentaire fictif dans lequel vous pouvez ajouter votre propre logique pour traiter chaque ligne. Par exemple, vous pouvez analyser la ligne, extraire des informations ou effectuer des actions spécifiques en fonction du contenu.
    7. done <$file : Ceci marque la fin de la boucle while. Le < $file redirige le contenu du fichier à lire par la boucle.
    8. else : si le fichier n'existe pas (la condition dans l'instruction if est fausse), le script exécute le code sous la branche else.
    9. echo File not found : $file : Cette ligne imprime un message d'erreur indiquant que le fichier spécifié n'a pas été trouvé.
    10. fi : Cette ligne marque la fin de l'instruction if.
    lecture d'un fichier

    lecture d'un fichier

    Ici , nous avons utilisé ` mot de passe ` pour obtenir le chemin du répertoire courant.

    17) Écrivez une fonction dans un script shell qui calcule la factorielle d'un nombre donné.

    Voici le script quicalculer la factorielled'un nombre donné.

    #!/bin/bash
    # Définir une fonction pour calculer factorielle
    calculer_factorial() {
    num=$1
    fait=1
    pour ((i=1; i<=num; i++)); faire
    fait=$((fait * i))
    fait
    écho $fait
    }
    # Inviter l'utilisateur à saisir un numéro
    echo Entrez un numéro :
    lire num_entrée
    # Appelez la fonction calculate_factorial avec le numéro d'entrée
    factorial_result=$(calculate_factorial $input_num)
    # Afficher le résultat factoriel
    echo Factorielle de $input_num est : $factorial_result

    Explication:

    1. Le script commence par la ligne shebang #!/bin/bash pour spécifier l'interpréteur.
    2. calculate_factorial() est défini comme une fonction. Il faut un argument, num, qui est le nombre pour lequel la factorielle doit être calculée.
    3. A l'intérieur de la fonction, fact est initialisé à 1. Cette variable stockera le résultat factoriel.
    4. La boucle for parcourt de 1 au nombre donné (num). À chaque itération, il multiplie la valeur actuelle du fait par l'indice de boucle i.
    5. Une fois la boucle terminée, la variable de fait contient la factorielle calculée.
    6. Le script invite l'utilisateur à saisir un nombre en utilisant read.
    7. La fonction calculate_factorial est appelée avec le numéro fourni par l'utilisateur et le résultat est stocké dans la variable factorial_result.
    8. Enfin, le script affiche le résultat factoriel calculé.
    Factorielle

    Factorielle

    18) Comment gérez-vous les signaux comme Ctrl+C dans un script shell ?

    Dans un script shell, vous pouvez gérer des signaux tels que Ctrl+C (également appelé SIGINT) à l'aide de la commande trap. Ctrl+C génère un signal SIGINT lorsque l'utilisateur appuie dessus pour interrompre le script ou le programme en cours d'exécution. En utilisant la commande trap, vous pouvez spécifier les actions à entreprendre lorsqu'un signal particulier est reçu. Voici comment gérer les signaux tels que Ctrl+C dans un script shell :

    #!/bin/bash
    nettoyer() {
    echo Script interrompu. Effectuer un nettoyage…
    # Ajoutez vos actions de nettoyage ici
    sortie 1
    }
    # Configurer un piège pour appeler la fonction de nettoyage lorsque Ctrl+C (SIGINT) est reçu
    nettoyage des pièges SIGINT
    # Reste de votre script
    écho En cours d'exécution…
    dormir 10
    écho Terminé.

    La gestion des signaux est importante pour rendre les scripts robustes et garantir qu'ils gèrent les interruptions inattendues avec élégance. Vous pouvez personnaliser la fonction de nettoyage en fonction de vos besoins spécifiques, comme la fermeture de fichiers, l'arrêt de processus ou la journalisation d'informations avant la fermeture du script.

    Explication:

    1. #!/bin/bash : Cette ligne shebang spécifie l'interpréteur à utiliser pour exécuter le script.
    2. cleanup() { … } : Ceci définit une fonction nommée cleanup. Dans cette fonction, vous pouvez inclure toutes les actions qui doivent être effectuées lorsque le script est interrompu, telles que la fermeture de fichiers, la libération de ressources ou l'exécution d'autres tâches de nettoyage.
    3. trap cleanup SIGINT : La commande trap est utilisée pour configurer un gestionnaire de signal. Dans ce cas, il précise que lorsque le signal SIGINT (Ctrl+C) est reçu, la fonction de nettoyage doit être exécutée.
    4. echo Running…, sleep 10, echo Finished. : Ce ne sont que des exemples de commandes pour simuler l’exécution d’un script.

    446

    19) Créez un script qui recherche et supprime les lignes en double dans un fichier texte.

    Voici notre script Linux dans lequel nous supprimerons les lignes en double d'un fichier texte.

    #!/bin/bash
    fichier_entrée=entrée.txt
    fichier_de sortie=sortie.txt
    trier $input_file | uniq> $fichier_sortie
    echo Les lignes en double ont été supprimées avec succès.

    Explication:

    1. Le script commence par un shebang (#!/bin/bash), qui indique que le script doit être interprété à l'aide du shell Bash.
    2. La variable input_file est définie sur le nom du fichier d'entrée contenant des lignes en double (remplacez-le par le nom réel de votre fichier d'entrée).
    3. La variable output_file est définie sur le nom du fichier de sortie où les doublons seront supprimés (remplacez-le par le nom du fichier de sortie souhaité).
    4. Le script utilise la commande sort pour trier les lignes du fichier d'entrée. Le tri des lignes garantit que les lignes en double sont regroupées.
    5. Les lignes triées sont ensuite transmises via la commande uniq, qui supprime les lignes consécutives en double. La sortie de ce processus est redirigée vers le fichier de sortie.
    6. Une fois les doublons supprimés, le script imprime un message de réussite.
    suppression de ligne en double

    suppression de ligne en double

    Ici, nous utilisons ` chat ` pour afficher le texte à l'intérieur du fichier texte.

    20) Écrivez un script qui génère un mot de passe aléatoire sécurisé.

    Voici notre script pour générer un mot de passe aléatoire sécurisé.

    #!/bin/bash
    # Fonction pour générer un mot de passe aléatoire
    créer un mot de passe() {
    tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    }
    # Appelez la fonction et stockez le mot de passe généré
    mot de passe=$(generate_password)
    echo Mot de passe généré : $password

    Remarque : L'utilisateur peut en conséquence modifier la longueur de son mot de passe en remplaçant le chiffre « 12 ».

    Explication:

    1. Le script commence par un shebang (#!/bin/bash), indiquant qu'il doit être interprété à l'aide du shell Bash.
    2. La fonction generate_password est définie pour générer un mot de passe aléatoire. Voici comment cela fonctionne:
      • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
      • Fold -w 12 divise les données aléatoires filtrées en lignes de 12 caractères chacune.
      • head -n 1 sélectionne la première ligne, nous donnant effectivement une séquence aléatoire de caractères de longueur 12.
    3. La variable password reçoit le résultat de l'appel de la fonction generate_password.
    4. Enfin, le mot de passe généré est affiché en utilisant echo.

    448

    21) Écrivez un script shell qui calcule la taille totale de tous les fichiers d'un répertoire.

    Voici un script shell pour calculer la taille totale de tous les fichiers d'un répertoire.

    #!/bin/bash
    répertoire=/chemin/vers/votre/répertoire
    total_size=$(du -csh $directory | grep total | awk '{print $1}')
    echo Taille totale des fichiers dans $directory : $total_size

    Explication:

    1. Le script commence par le shebang #!/bin/bash, indiquant qu'il doit être interprété à l'aide du shell Bash.
    2. La variable directory est définie sur le chemin du répertoire pour lequel vous souhaitez calculer la taille totale du fichier. Remplacez /path/to/your/directory par le chemin réel.
    3. La commande du est utilisée pour estimer l'utilisation de l'espace fichier. Les options utilisées sont :
      • -c : produit un total général.
      • -s : affiche uniquement la taille totale du répertoire spécifié.
      • -h : tailles d'impression dans un format lisible par l'homme (par exemple, Ko, Mo, Go).
    4. La sortie de du est redirigée vers grep total pour filtrer la ligne qui contient la taille totale.
    5. awk '{print $1}' est utilisé pour extraire le premier champ (taille totale) de la ligne.
    6. La taille totale calculée est stockée dans la variable total_size.
    7. Enfin, le script affiche la taille totale en utilisant echo.
    Taille totale des fichiers

    Taille totale des fichiers

    Ici , nous avons utilisé ` mot de passe ` pour voir le chemin du répertoire actuel.

    22) Expliquez la différence entre les instructions if et elif dans les scripts shell.

    Fonctionnalité `if`Staiftement Déclaration `elif`
    But Expliquez la différence entre les instructions if et elif dans les scripts shell. Fournit des conditions alternatives pour vérifier lorsque la condition if initiale est fausse.
    usage Utilisé pour la condition initiale. Utilisé après la condition if initiale pour vérifier des conditions supplémentaires.
    nombre de blocs Ne peut en avoir qu'un seul if block. Peut avoir plusieurs blocs elif, mais un seul bloc else (facultatif).
    Exécution Exécute le bloc de code associé à l'instruction if si la condition est vraie. Si la condition est fausse, le bloc else (s'il est présent) est exécuté (facultatif). Vérifie chaque condition elif dans l'ordre. Si une condition elif est vraie, le bloc de code correspondant est exécuté et le script quitte l'intégralité du bloc conditionnel. Si aucune des conditions elif n'est vraie, le bloc else (s'il est présent) est exécuté.
    Structures imbriquées Peut être imbriqué dans d’autres blocs if, elif ou else. Ne peut pas être imbriqué dans un autre bloc elif, mais peut être utilisé dans un bloc if ou else.

    Comprenons-le par un exemple.

    #!/bin/bash
    nombre=5
    si [ $numéro -gt 10 ]; alors
    echo $le nombre est supérieur à 10
    autre
    echo $le nombre n'est pas supérieur à 10
    être
    écho ---
    si [ $numéro -gt 10 ]; alors
    echo $le nombre est supérieur à 10
    elif [ $numéro -eq 10 ]; alors
    echo $number est égal à 10
    autre
    echo $le nombre est inférieur à 10
    être

    Explication:

    Dans cet exemple, le premier bloc if vérifie si le nombre est supérieur à 10. Sinon, il imprime un message indiquant que le nombre n'est pas supérieur à 10. Le deuxième bloc avec les instructions elif vérifie plusieurs conditions séquentiellement jusqu'à ce que l'une d'entre elles soit vraie. Dans ce cas, puisque la valeur du nombre est 5, le résultat sera :

    différence if_elif

    différence if_elif

    23) Comment utiliser une boucle while pour exécuter des commandes à plusieurs reprises ?

    Une boucle while est utilisée dans les scripts shell pour exécuter de manière répétée un ensemble de commandes tant qu'une condition spécifiée est vraie. La boucle continue d'exécuter les commandes jusqu'à ce que la condition devienne fausse.

    Voici la syntaxe de base d’une boucle while :

    tandis que [ condition ]; faire
    # Commandes à exécuter
    fait

    Explication:

    1. La boucle « while » commence par le mot-clé « while » suivi d'une condition entre crochets « [ ] ».
    2. Le corps de la boucle, qui contient les commandes à exécuter, est entouré des mots-clés « do » et « done ».
    3. La boucle vérifie d'abord la condition. Si la condition est vraie, les commandes contenues dans le corps de la boucle sont exécutées. Une fois le corps de la boucle exécuté, la condition est à nouveau vérifiée et le processus se répète jusqu'à ce que la condition devienne fausse.

    Exemple: Si nous voulons imprimer des nombres de 1 à 5

    #!/bin/bash
    compteur=1
    while [ $counter -le 5 ]; faire
    Numéro d'écho : $compteur
    compteur=$((compteur + 1))
    fait

    Explication:

    • La variable compteur est mise à 1.
    • La boucle while vérifie si la valeur du compteur est inférieure ou égale à 5. Tant que cette condition est vraie, la boucle continue de s'exécuter.
    • À l'intérieur de la boucle, la valeur actuelle du compteur est imprimée en utilisant echo.
    • Le compteur est incrémenté de 1 à l'aide de l'expression $((counter + 1)).
    boucle while

    boucle while

    24) Créez un script shell qui recherche et répertorie tous les fichiers vides dans un répertoire.

    Script Shell que vous pouvez utiliser pour rechercher et lister tous les fichiers vides dans un répertoire à l'aide des commandes `find` et `stat` :

    #!/bin/bash
    répertoire=$1″
    if [ -z $répertoire ]; alors
    echo Utilisation : 0 $
    sortie 1
    être

    si [ ! -d $répertoire ]; alors
    echo Erreur : « $directory » n'est pas un répertoire valide.
    sortie 1
    être
    echo Fichiers vides dans $répertoire :
    trouver $répertoire -type f -vide

    Explication:

    1. ` #!/bin/bash ` : C'est ce qu'on appelle un shebang, et cela indique au système d'exploitation d'utiliser le shell Bash pour interpréter et exécuter le script.
    2. ` répertoire=$1″ ` : Cette ligne attribue le premier argument de ligne de commande (noté $1) à la variable ` annuaire `.
    3. ` if [ -z $répertoire ]; alors ` : Cette ligne démarre une instruction if qui vérifie si le ` annuaire ` La variable est vide (-z teste une chaîne vide).
    4. ` echo Utilisation : 0 $ ` : Si le répertoire est vide, cette ligne affiche un message d'utilisation, où ` 0 $ ` représente le nom du script.
    5. ` sortie 1 ` : Cette ligne quitte le script avec un code de sortie de ` 1 `, indiquant une erreur.
    6. ` être ` : Cette ligne marque la fin du ` si `déclaration.
    7. ` si [ ! -d $répertoire ]; alors ` : Cela démarre une autre instruction if pour vérifier si le répertoire fourni existe (` -d ` teste un répertoire).
    8. ` echo Erreur : « $directory » n'est pas un répertoire valide. ` : Si le répertoire fourni n'existe pas, cette ligne affiche un message d'erreur.
    9. ` sortie 1 ` : Quitte le script avec un code de sortie de ` 1 `.
    10. ` être ` : marque la fin de la seconde ` si` déclaration.
    11. ` echo Fichiers vides dans $répertoire : ` : Si tout est valide jusqu'à présent, cette ligne imprime un message indiquant que le script listera les fichiers vides dans le répertoire spécifié.
    12. ` trouver $répertoire -type f -vide ` : Cette ligne utilise le ` trouver ` commande pour rechercher des fichiers vides (` -vide `) de type fichiers normaux (` -type f `) dans le répertoire spécifié. Il répertorie ensuite ces fichiers vides.
    Trouver des fichiers vides

    Trouver des fichiers vides

    Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/

    25) Quel est le but de la commande read dans les scripts shell ?

    La commande read dans les scripts shell permet au script de vous demander des informations. C'est comme lorsqu'un ordinateur vous pose une question et attend votre réponse. Ceci est utile pour les scripts qui nécessitent que vous tapiez quelque chose ou lorsque le script doit travailler avec des informations provenant de fichiers. La commande read aide le script à s'arrêter et à attendre ce que vous tapez, puis il peut utiliser ces informations pour faire plus de choses dans le script.

    Syntaxe de la commande read :

    read variable_name>

    Exemple : Si nous voulons prendre le nom comme entrée de l'utilisateur pour l'imprimer.

    #!/bin/bash
    echo Veuillez entrer votre nom :
    lire le nom
    echo Bonjour, $name !

    453

    lire le nom

    En résumé, la commande read est utilisée pour capturer les entrées utilisateur ou les données des fichiers dans des scripts shell, rendant les scripts plus interactifs et polyvalents.

    26) Écrivez un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

    Voici un script shell qui convertit tous les noms de fichiers d'un répertoire en minuscules.

    #!/bin/bash
    répertoire=$1″
    if [ -z $répertoire ]; alors
    echo Utilisation : 0 $
    sortie 1
    être

    si [ ! -d $répertoire ]; alors

    echo Erreur : « $directory » n'est pas un répertoire valide.
    sortie 1
    être

    cd $répertoire || sortie 1

    pour le fichier dans * ; faire
    si [ -f $fichier ]; alors
    nouveau nom=$(echo $file | tr 'A-Z' 'a-z')
    [ $file != $nouveau nom ] && mv $file $nouveau nom
    être
    fait

    Explication:

    1. #!/bin/bash : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
    2. répertoire=$1″ : Cette ligne attribue le premier argument de ligne de commande au répertoire de variables.
    3. if [ -z $répertoire ]; alors : Cette ligne vérifie si la variable répertoire est vide (aucun argument fourni lors de l'exécution du script).
    4. echo Utilisation : 0 $ : Si le répertoire est vide, cette ligne imprime un message d'utilisation avec le nom du script ($0).
    5. sortie 1 : Cette ligne quitte le script avec un code de sortie de 1, indiquant qu'une erreur s'est produite.
    6. F i : Cela marque la fin de la première instruction if.
    7. si [ ! -d $répertoire ]; alors : Cette ligne vérifie si le répertoire spécifié n'existe pas (-d teste un répertoire).
    8. echo Erreur : « $directory » n'est pas un répertoire valide. : Si le répertoire spécifié n'existe pas, cette ligne affiche un message d'erreur.
    9. sortie 1 : Quitte le script avec un code de sortie de 1.
    10. être : Marque la fin de la deuxième instruction if.
    11. cd $répertoire || sortie 1 : remplace le répertoire de travail actuel par le répertoire spécifié. Si le changement de répertoire échoue (par exemple, répertoire inexistant), le script se termine avec un code d'erreur.
    12. pour le fichier dans * ; faire: je pour le fichier dans * ; faire: lance une boucle qui parcourt tous les éléments du répertoire courant (* correspond à tous les noms de fichiers).
    13. si [ -f $fichier ]; alors : Vérifie si l'élément d'itération de boucle actuel est un fichier normal (-f teste un fichier normal).
    14. nouveau nom=$(echo $file | tr 'A-Z' 'a-z') : Convertit le nom de fichier actuel ($file) en minuscules à l'aide de la commande tr et stocke le résultat dans la variable newname.
    15. [ $file != $nouveau nom ] && mv $file $nouveau nom : Compare le nom de fichier d'origine avec le nouveau nom de fichier en minuscules. S'ils sont différents, il renomme le fichier à l'aide de la commande mv.
    16. être : Marque la fin de l’instruction if interne.
    17. fait : Marque la fin de la boucle.

    454

    Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/test

    27) Comment utiliser des opérations arithmétiques dans un script shell ?

    Les opérations arithmétiques peuvent être effectuées dans un script shell à l'aide de diverses méthodes intégrées. Le shell fournit des mécanismes pour des calculs arithmétiques simples utilisant l'expansion arithmétique comme :

    1. Expansion arithmétique ($((…)))
    2. Utilisation de la commande expr
    3. Utilisation de la commande let

    Voici notre script Shell expliquant les trois méthodes d'opérations arithmétiques.

    #!/bin/bash
    num1=10
    num2=5

    #Expansion arithmétique ($((…)))

    résultat=$((num1 + num2))
    echo Somme : $résultat

    #Utilisation de la commande expr

    somme=$(expr $num1 + $num2)
    echo Somme : $somme

    #Utilisation de la commande let

    soit somme = num1 + num2
    echo Somme : $somme

    Explication:

    1. `#!/bin/bash` : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
    2. `num1=10` et ` num2=5` : Ces lignes attribuent les valeurs 10 et 5 aux variables ` num1 ' et ' numéro2 `, respectivement.
    3. `#Expansion arithmétique ($((…)))` : Il s'agit d'un commentaire indiquant le début de la section qui démontre le développement arithmétique.
    4. `résultat=$((num1 + num2))` : Cette ligne utilise le développement arithmétique pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` résultat `variable.
    5. `somme d'écho : $résultat` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` résultat `variable.
    6. `#Utilisation de la commande expr` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` expression ` commande pour les opérations arithmétiques.
    7. `somme=$(expr $num1 + $num2)` : Cette ligne utilise le ` expression ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` somme `variable. Notez que le ` expression La commande ` nécessite des espaces autour des opérateurs.
    8. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
    9. `#Utilisation de la commande let` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` laisser ` commande pour les opérations arithmétiques.
    10. `soit somme = num1 + num2″` : Cette ligne utilise le ` laisser ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et attribue le résultat au ` somme `variable. Le ' laisser La commande ` ne nécessite pas d'espaces autour des opérateurs.
    11. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
    arithmétique

    arithmétique

    28) Créez un script qui vérifie si un hôte réseau est accessible.

    Voici un simple script shell qui utilise la commande ping pour vérifier si un hôte réseau est accessible :

    #!/bin/bash
    hôte = 1 $″
    si [ -z $hôte ]; alors
    echo Utilisation : 0 $
    sortie 1
    être
    ping -c 4 $hôte

    si [ $? -éq 0 ]; alors
    echo $host est accessible.
    autre
    echo $host n'est pas accessible.
    être

    Explication:

    1. Il prend un nom d'hôte ou une adresse IP comme argument et vérifie si l'argument est fourni.
    2. Si aucun argument n'est fourni, il affiche un message d'utilisation et se termine.
    3. Il utilise la commande ping avec l'option -c 4 pour envoyer quatre requêtes d'écho ICMP à l'hôte spécifié.
    4. Une fois la commande ping exécutée, elle vérifie l'état de sortie ($?). Si l'état de sortie est 0, cela signifie que l'hôte est joignable et le script imprime un message de réussite. Sinon, il imprime un message d'échec.

    456

    Note : Nous devons fournir un nom d'hôte comme argument lors de l'exécution du script. Ici, nous avons utilisé google.com

    29) Écrivez un script Shell pour trouver le plus grand élément d'un tableau :

    Voici un script shell pour trouver le plus grand élément d'un tableau.

    #!/bin/bash
    # Déclarer un tableau
    tableau=(3 56 24 89 67)

    # Initialiser une variable pour stocker la valeur maximale, en commençant par le premier élément

    max=${tableau[0]}

    # Parcourir le tableau

    pour num dans ${array[@]} ; faire

    # Comparez chaque élément avec le maximum actuel

    si ((num> max)); alors
    max=$num
    être
    fait

    # Imprimer la valeur maximale

    echo L'élément maximum dans le tableau est : $max

    Explication:

    1. ` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.
    2. ` tableau=(3 56 24 89 67) ` : Le tableau est déclaré et initialisé avec des valeurs.
    3. ` max=${tableau[0]} ` : `max` est initialisé avec le premier élément du tableau.
    4. ` pour num dans ${array[@]} ; faire ` : Une boucle `for` est utilisée pour parcourir les éléments du tableau.
    5. ` si ((num> max)); alors ` : Une instruction `if` vérifie si l'élément actuel `num` est supérieur au maximum actuel `max`.
    6. ` max=$num` : Si`num ` est supérieur à `max`, `max` est mis à jour avec la valeur de num.
    7. ` fait ` : La boucle `for` est fermée.
    8. ` echo L'élément maximum dans le tableau est : $max ` : Enfin, le script imprime la valeur maximale trouvée dans le tableau.
    461

    le plus grand nombre

    30) Écrivez un script pour calculer la somme des éléments dans un tableau.

    #!/bin/bash

    # Déclarer un tableau

    tableau=(1 65 22 19 94)

    # Initialiser une variable pour stocker la somme

    somme=0

    # Parcourez le tableau et ajoutez chaque élément à la somme

    pour num dans ${array[@]} ; faire
    matin=$((matin + matin))
    fait

    # Imprimer la somme

    echo La somme des éléments du tableau est : $sum

    Explication:

    ` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.

    ` tableau=(1 65 22 19 94) ` : Le tableau est déclaré et initialisé avec des valeurs.

    ` somme=0 `:` somme ` est initialisé à zéro pour contenir la somme des éléments.

    ` pour num dans ${array[@]} ; faire ` : Un ` pour ` La boucle est utilisée pour parcourir les éléments du tableau.

    ` matin=$((matin + matin)) ` : À l'intérieur de la boucle, chaque élément ` sur une ` est ajouté au ` somme `variable.

    ` fait ` : Le ` pour ` La boucle est fermée.

    `echo La somme des éléments du tableau est : $sum` : Enfin, le script imprime la somme de tous les éléments du tableau.

    462

    Somme des éléments

    En savoir plus sur les scripts Shell

    Conclusion

    Nous tous, les geeks, savons que le script shell est très utile pour augmenter la productivité du travail et pour gagner du temps. Donc, dans cet article, nous avons couvert 30 exemples de scripts shell très utiles et les plus conman . Nous espérons que ce guide complet sur l'exemple de script shell vous aidera à tout comprendre sur les scripts shell.



    ).
  5. sortie 1 : Cette ligne quitte le script avec un code de sortie de 1, indiquant qu'une erreur s'est produite.
  6. F i : Cela marque la fin de la première instruction if.
  7. si [ ! -d $répertoire ]; alors : Cette ligne vérifie si le répertoire spécifié n'existe pas (-d teste un répertoire).
  8. echo Erreur : « $directory » n'est pas un répertoire valide. : Si le répertoire spécifié n'existe pas, cette ligne affiche un message d'erreur.
  9. sortie 1 : Quitte le script avec un code de sortie de 1.
  10. être : Marque la fin de la deuxième instruction if.
  11. cd $répertoire || sortie 1 : remplace le répertoire de travail actuel par le répertoire spécifié. Si le changement de répertoire échoue (par exemple, répertoire inexistant), le script se termine avec un code d'erreur.
  12. pour le fichier dans * ; faire: je pour le fichier dans * ; faire: lance une boucle qui parcourt tous les éléments du répertoire courant (* correspond à tous les noms de fichiers).
  13. si [ -f $fichier ]; alors : Vérifie si l'élément d'itération de boucle actuel est un fichier normal (-f teste un fichier normal).
  14. nouveau nom=$(echo $file | tr 'A-Z' 'a-z') : Convertit le nom de fichier actuel ($file) en minuscules à l'aide de la commande tr et stocke le résultat dans la variable newname.
  15. [ $file != $nouveau nom ] && mv $file $nouveau nom : Compare le nom de fichier d'origine avec le nouveau nom de fichier en minuscules. S'ils sont différents, il renomme le fichier à l'aide de la commande mv.
  16. être : Marque la fin de l’instruction if interne.
  17. fait : Marque la fin de la boucle.

454

Note : Nous devons fournir un répertoire comme argument lors de l'exécution du script. Ici, nous avons utilisé le chemin du répertoire actuel home/jayeshkumar/test

27) Comment utiliser des opérations arithmétiques dans un script shell ?

Les opérations arithmétiques peuvent être effectuées dans un script shell à l'aide de diverses méthodes intégrées. Le shell fournit des mécanismes pour des calculs arithmétiques simples utilisant l'expansion arithmétique comme :

  1. Expansion arithmétique ($((…)))
  2. Utilisation de la commande expr
  3. Utilisation de la commande let

Voici notre script Shell expliquant les trois méthodes d'opérations arithmétiques.

#!/bin/bash
num1=10
num2=5

#Expansion arithmétique ($((…)))

résultat=$((num1 + num2))
echo Somme : $résultat

#Utilisation de la commande expr

somme=$(expr $num1 + $num2)
echo Somme : $somme

#Utilisation de la commande let

soit somme = num1 + num2
echo Somme : $somme

Explication:

  1. `#!/bin/bash` : C'est le shebang, précisant que le script doit être interprété à l'aide du shell Bash.
  2. `num1=10` et ` num2=5` : Ces lignes attribuent les valeurs 10 et 5 aux variables ` num1 ' et ' numéro2 `, respectivement.
  3. `#Expansion arithmétique ($((…)))` : Il s'agit d'un commentaire indiquant le début de la section qui démontre le développement arithmétique.
  4. `résultat=$((num1 + num2))` : Cette ligne utilise le développement arithmétique pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` résultat `variable.
  5. `somme d'écho : $résultat` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` résultat `variable.
  6. `#Utilisation de la commande expr` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` expression ` commande pour les opérations arithmétiques.
  7. `somme=$(expr $num1 + $num2)` : Cette ligne utilise le ` expression ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et stocke le résultat dans le ` somme `variable. Notez que le ` expression La commande ` nécessite des espaces autour des opérateurs.
  8. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
  9. `#Utilisation de la commande let` : Ceci est un commentaire indiquant le début de la section qui démontre l'utilisation du ` laisser ` commande pour les opérations arithmétiques.
  10. `soit somme = num1 + num2″` : Cette ligne utilise le ` laisser ` commande pour calculer la somme de ` num1 ' et ' numéro2 ` et attribue le résultat au ` somme `variable. Le ' laisser La commande ` ne nécessite pas d'espaces autour des opérateurs.
  11. `echo Somme : $somme` : Cette ligne imprime la somme calculée en utilisant la valeur stockée dans le fichier ` somme `variable.
arithmétique

arithmétique

28) Créez un script qui vérifie si un hôte réseau est accessible.

Voici un simple script shell qui utilise la commande ping pour vérifier si un hôte réseau est accessible :

#!/bin/bash
hôte = 1 $″
si [ -z $hôte ]; alors
echo Utilisation : 0 $
sortie 1
être
ping -c 4 $hôte

si [ $? -éq 0 ]; alors
echo $host est accessible.
autre
echo $host n'est pas accessible.
être

Explication:

  1. Il prend un nom d'hôte ou une adresse IP comme argument et vérifie si l'argument est fourni.
  2. Si aucun argument n'est fourni, il affiche un message d'utilisation et se termine.
  3. Il utilise la commande ping avec l'option -c 4 pour envoyer quatre requêtes d'écho ICMP à l'hôte spécifié.
  4. Une fois la commande ping exécutée, elle vérifie l'état de sortie ($?). Si l'état de sortie est 0, cela signifie que l'hôte est joignable et le script imprime un message de réussite. Sinon, il imprime un message d'échec.

456

Note : Nous devons fournir un nom d'hôte comme argument lors de l'exécution du script. Ici, nous avons utilisé google.com

29) Écrivez un script Shell pour trouver le plus grand élément d'un tableau :

Voici un script shell pour trouver le plus grand élément d'un tableau.

#!/bin/bash
# Déclarer un tableau
tableau=(3 56 24 89 67)

# Initialiser une variable pour stocker la valeur maximale, en commençant par le premier élément

j'essaie d'entrer

max=${tableau[0]}

# Parcourir le tableau

pour num dans ${array[@]} ; faire

# Comparez chaque élément avec le maximum actuel

si ((num> max)); alors
max=$num
être
fait

# Imprimer la valeur maximale

echo L'élément maximum dans le tableau est : $max

Explication:

  1. ` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.
  2. ` tableau=(3 56 24 89 67) ` : Le tableau est déclaré et initialisé avec des valeurs.
  3. ` max=${tableau[0]} ` : `max` est initialisé avec le premier élément du tableau.
  4. ` pour num dans ${array[@]} ; faire ` : Une boucle `for` est utilisée pour parcourir les éléments du tableau.
  5. ` si ((num> max)); alors ` : Une instruction `if` vérifie si l'élément actuel `num` est supérieur au maximum actuel `max`.
  6. ` max=$num` : Si`num ` est supérieur à `max`, `max` est mis à jour avec la valeur de num.
  7. ` fait ` : La boucle `for` est fermée.
  8. ` echo L'élément maximum dans le tableau est : $max ` : Enfin, le script imprime la valeur maximale trouvée dans le tableau.
461

le plus grand nombre

30) Écrivez un script pour calculer la somme des éléments dans un tableau.

#!/bin/bash

# Déclarer un tableau

tableau=(1 65 22 19 94)

# Initialiser une variable pour stocker la somme

somme=0

# Parcourez le tableau et ajoutez chaque élément à la somme

pour num dans ${array[@]} ; faire
matin=$((matin + matin))
fait

# Imprimer la somme

echo La somme des éléments du tableau est : $sum

Explication:

` #!/bin/bash ` : La ligne shebang spécifie que le script doit être interprété à l'aide du shell Bash.

` tableau=(1 65 22 19 94) ` : Le tableau est déclaré et initialisé avec des valeurs.

` somme=0 `:` somme ` est initialisé à zéro pour contenir la somme des éléments.

` pour num dans ${array[@]} ; faire ` : Un ` pour ` La boucle est utilisée pour parcourir les éléments du tableau.

` matin=$((matin + matin)) ` : À l'intérieur de la boucle, chaque élément ` sur une ` est ajouté au ` somme `variable.

` fait ` : Le ` pour ` La boucle est fermée.

`echo La somme des éléments du tableau est : $sum` : Enfin, le script imprime la somme de tous les éléments du tableau.

462

Somme des éléments

En savoir plus sur les scripts Shell

Conclusion

Nous tous, les geeks, savons que le script shell est très utile pour augmenter la productivité du travail et pour gagner du temps. Donc, dans cet article, nous avons couvert 30 exemples de scripts shell très utiles et les plus conman . Nous espérons que ce guide complet sur l'exemple de script shell vous aidera à tout comprendre sur les scripts shell.