Ecriture de script-shell sous Linux / Unix
Support des TPs
LAB 5 : Les Script Shell
Exercice 1:
Créer un script qui demande à l'utilisateur de saisir une note et qui affiche un message en
fonction de cette note :
✔ « très bien » si la note est entre 16 et 20 ;
✔ « bien » lorsqu'elle est entre 14 et 16 ;
✔ « assez bien » si la note est entre 12 et 14 ;
✔ « moyen » si la note est entre 10 et 12 ;
✔ « insuffisant » si la note est inférieure à 10.
Proposition
#!/bin/bash
echo "Entrez votre note :"; read -r note
if [ "$note" -ge 16 ]; then echo "très bien"
elif [ "$note" -ge 14 ]; then echo "bien"
elif [ "$note" -ge 12 ]; then echo "assez bien"
elif [ "$note" -ge 10 ]; then echo "moyen"
else echo "insuffisant"
fi
1/5
Exercice 2:
Écrire un script shell «bienvenue» qui affiche un message de bienvenue en fonction de
l’heure système.
Pour obtenir l’heure actuelle: $date +%H
Si l’heure < 12h : Alors affichez « bonjour »
Si 12h < l’heure < 17h : Alors affichez « bon après midi » Si l’heure
> 17h : Alors affichez « Bonsoir ».
(if / then /else) (-lt/-gt)
Exercice 3
Créer un script shell nommé "nombreJours" qui affichera le nombre de jours du mois courant.
"nombreJours" affichera pour février 2021 le message "28 jours en février 2021".
→ Structure case
Exercice 4
Écrire un script qui dit si le premier paramètre passé en ligne de
commande est un nom de fichier ou non.
Exercice 5
Écrire un script qui affiche la taille d'un fichier passé en paramètre sous la forme :
Nom du fichier : [Link] Taille 1562 octets
⇒ du -b
Exercice 6
Écrire un script shell « division » qui accepte deux paramètres entiers puis calcule et affiche
leur quotient. Il faut traiter tous les cas possibles.
✔ Cas 1: ./division 5 2 : le résultat 5/2 ⇒2 (expr)
✔ Cas 2: ./division 5 : le nombre de paramètres est différent de 2
✔ Cas 3: ./division 5 0 : la division est impossible résultat 5/2
Exercice 7
Ecrire un script shell « Maximum » qui accepte deux paramètres entiers puis affiche leur valeur
maximale
Exercice 8
Écrire un script Shell qui dit si la chaîne passée en paramètre correspond à un nom de fichier
2/5
ordinaire, à un répertoire ou autre. (test -f / -d)
Exercice 9
Écrire un script Shell qui prend en paramètre les noms de deux répertoires et qui déplace les
fichiers ordinaires du premier répertoire dans le deuxième. Un message d’erreur est affiché si
le nombre de paramètres est inférieur à deux. Ou si les paramètres ne sont pas des répertoires.
(test -d / $#)
Exercice 10
Écrire un script qui n’accepte pas de paramètres et qui parcourt le répertoire courant et ajoute
des droits d’exécution à tous les utilisateurs pour les fichiers script bash. Nous identifierons
un fichier script bash par sa première ligne qui commence par « # ! /bin/bash » ⇒ grep /
chmod / test -f
Exercice 11
Ecrire un script ajouter_num_ligne qui pour chaque fichier entrée en paramètre
« fich », génère un fichier « fich_plus_num », qui contient le même contenu que fich mais où
chaque ligne est précédée par un numéro.
3/5