0% ont trouvé ce document utile (0 vote)
3 vues3 pages

Scripts Shell : Somme, Factorielle, Vérifications

Le document présente plusieurs exercices de scripts Shell, incluant des calculs de somme et de factorielle, la vérification de la connexion d'un utilisateur, la recherche de chaînes dans des fichiers, la copie de contenu entre fichiers, et le comptage de fichiers, répertoires et liens symboliques dans un répertoire. Chaque exercice est accompagné d'un code source détaillé. Ces scripts illustrent des opérations de base en ligne de commande pour la gestion de fichiers et d'utilisateurs sous Linux.

Transféré par

gnethodominique
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues3 pages

Scripts Shell : Somme, Factorielle, Vérifications

Le document présente plusieurs exercices de scripts Shell, incluant des calculs de somme et de factorielle, la vérification de la connexion d'un utilisateur, la recherche de chaînes dans des fichiers, la copie de contenu entre fichiers, et le comptage de fichiers, répertoires et liens symboliques dans un répertoire. Chaque exercice est accompagné d'un code source détaillé. Ces scripts illustrent des opérations de base en ligne de commande pour la gestion de fichiers et d'utilisateurs sous Linux.

Transféré par

gnethodominique
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Correction TD n°3: Les Script Shell

Exercice 1
Écrire un script Shell SOMME qui calcule et affiche la somme des entiers de 1 à 100.

1 #!/bin/bash Shell
2
3 somme=0
4 for i in {1..100}; do
5 somme=$((somme + i))
6 done
7
8 echo "La somme des entiers de 1 à 100 est : $somme"

Exercice 2
Écrire un script Shell FACTORIELLE qui calcule et affiche la factorielle d’un nombre entier n accepté
à partir du clavier.

1 #!/bin/bash Shell
2
3 fact=1
4 for (( i=1; i<=$1; i++ )); do
5 fact=$((fact*i))
6 done
7 echo "Factorielle de $1 =$fact"

Exercice 3
Écrire un script Shell qui permet de vérifier si un utilisateur est connecté ou non.
N.B. utilisez la commande who.

1 #!/bin/bash Shell
2
3 read -p "Entrez le nom d'utilisateur à vérifier: " username
4
5 if who | grep -q "$username"; then
6 echo "L'utilisateur $username est connecté."
7 else
8 echo "L'utilisateur $username n'est pas connecté."
9 fi

Amanullah Menjli 1
Exercice 4
Écrire un script Shell qui recherche une chaîne dans un fichier.

1 #!/bin/bash Shell
2
3 read -p "Entrez le nom du fichier: " fichier
4 read -p "Entrez la chaîne à rechercher: " chaine
5
6 if [ ! -f "$fichier" ]; then
7 echo "Erreur : Le fichier '$fichier' n'existe pas."
8 exit 1
9 fi
10
11 if grep -q "$chaine" "$fichier"; then
12 echo "La chaîne '$chaine' a été trouvée dans le fichier '$fichier'."
13 else
14 echo "La chaîne '$chaine' n'a pas été trouvée dans le fichier '$fichier'."
15 fi

Exercice 5
Écrire un script Shell qui permet de copier le contenu d’un fichier dans un autre.
N.B: Le programme doit vérifier si les deux fichiers existent ou non.

1 #!/bin/bash Shell
2
3 read -p "Entrez le nom du fichier source: " source
4 read -p "Entrez le nom du fichier destination: " destination
5
6 if [ ! -f "$source" ]; then
7 echo "Erreur : Le fichier source '$source' n'existe pas."
8 exit 1
9 fi
10
11 if [ ! -f "$destination" ]; then
echo "Attention : Le fichier destination '$destination' n'existe pas. Il sera
12
créé."
13 fi
14
15 cat "$source" >> "$destination"
16 echo "Le contenu de '$source' a été ajouté (appended) à '$destination'."

Amanullah Menjli 2
Exercice 6
Écrire un script Shell qui permet de calculer le nombre de fichier ordinaires, répertoires et de liens
symboliques dans un répertoire quelconque.

1 #!/bin/bash Shell
2
read -p "Entrez le chemin du répertoire à analyser (ou '.' pour le répertoire
3
courant): " repertoire
4
5 if [ ! -d "$repertoire" ]; then
6 echo "Erreur : Le répertoire '$repertoire' n'existe pas."
7 exit 1
8 fi
9
10 fichiers=0
11 repertoires=0
12 liens=0
13
14 for element in "$repertoire"/*; do
[ -e "$element" ] || [ -L "$element" ] || continue # Gère le cas où le glob ne
15
correspond à rien
16
17 if [ -f "$element" ]; then
18 ((fichiers++))
19 elif [ -d "$element" ]; then
20 ((repertoires++))
21 elif [ -L "$element" ]; then
22 ((liens++))
23 fi
24 done
25
26 echo "Dans le répertoire '$repertoire':"
27 echo "Nombre de fichiers ordinaires: $fichiers"
28 echo "Nombre de répertoires: $repertoires"
29 echo "Nombre de liens symboliques: $liens"

Amanullah Menjli 3

Vous aimerez peut-être aussi