Vous êtes sur la page 1sur 3

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 : test.sh 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

Vous aimerez peut-être aussi