Vous êtes sur la page 1sur 6

FACULTÉ DES SCIENCES ET TECHNIQUES

DÉPARTEMENT D’INFORMATQUE

SICOM 2019-2020
Programmation SHELL
Série N°2
Correction
Exercice 1
- Ecrire un premier programme Shell qui demande votre nom et votre prénom, puis
le programme les affiche à l’écran.
- Ecrire un deuxième programme Shell auquel vous lui passez cette fois-ci en
argument votre nom et votre prénom et puis le programme les affiche ensemble.

Version 2

Exercice 2

1. Créer un script qui demande à l'utilisateur de saisir une note et puis affiche la
mention correspondante à 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.

1
2. Reprenez la question 1 et faites-en sorte que le programme se répète tant que
l'utilisateur n'a pas saisi une note négative ou 'q' (pour quitter). Le script doit
calculer le nombre de notes de saisies et en faire la moyenne tout à la fin.

✓ La commande echo avec un pipe sur bc permet d’effectuer les calculs


numérique de type réels.
✓ L’option scale précise le nombre de chiffres après la virgule. scale n’est pas
obligatoire et prend par défaut la valeur 0.

2
Exercice 3

Créer un script qui va devra exploiter les données d'un fichier de notes que vous allez
créer au préalable dans le même répertoire que le script.

Ce fichier sera appelé FichierNote.txt et devra se présenter comme ceci :

Dupont François 12
Durand François 8
Dujardin Nicole 14

Le script devra afficher les lignes dans lesquelles la note est supérieure ou égale à 10.

#!/bin/bash

fichier="FichierNote.txt"

while read ligne; do


set $ligne
if [$3 -ge 10 ]; then
echo $ligne
fi
done < $fichier

Exercice 4

Créer un script qui prend en paramètre ou en saisie le nom d'un fichier contenant le
nom des élèves et leurs trois notes. Le script affiche le nom de chaque élève suivi de
sa moyenne de ses notes.

Voici comment se présente le fichier :

Durand 12 9 14
Lucas 8 11 4
Martin 9 12 1

3
✓ La commande printf permet d’afficher un message sans retour à la ligne.

Exercice 5
Ecrire un shell mis à disposition de tout utilisateur permettant de sauvegarder tous ses
fichiers se trouvant dans le répertoire d’accueil sous le répertoire « repertoire_de_save ».
Ce dernier doit être créée dans le répertoire d’accueil de l’utilisateur. Le programme doit
afficher le nombre de fichiers copiés.

Il faut utiliser la commande find pour sauvegarder tous les fichiers de l’arborescence du
compte de l’utilisateur.

Exercice 6

Créer un script qui doit calculer le nombre de fichiers standard, de sous-répertoires,


et d'exécutables d'un répertoire quelconque qui sera donné en paramètre (ou saisis
en cas d'absence du paramètre).

#!/bin/bash

j=0
k=0
4
l=0

if [ "$#" -eq 0 ]; then


echo "Saisir le répertoire"
read rep
else
rep=$1
fi

cd $rep

for i in *; do
if [ -d "$i" ]; then
echo "$i"
let j=$j+1
fi
if [ -f "$i" ]; then
echo $i
let k=$k+1
fi
if [ -x "$i" ]; then
echo $i
let l=$l+1
fi
done
echo "Il y a $j répertoires, $k fichiers et $l exécutables dans $rep"

Exercice 7
Ecrire un script qui permet de concaténer les fichiers accessibles en lecture du premier
paramètre (répertoire) dans le deuxième paramètre (fichier).
Le programme doit tester d’abord l’existence du répertoire. Le programme doit
afficher le nombre de fichiers concaténés.

5
Exercice 8

Créer un script qui vérifie l'existence du compte d’un utilisateur quelconque dont le
nom est passé en argument au script. Le script doit afficher l’un de des deux
messages ‘Utilisateur existe’ et ‘Utilisateur n’existe pas’. Les messages renvoyés par
les commandes sont redirigés vers le fichier bidon du système /dev/null.

if [ grep "^$1" /etc/passwd |wc -l -eq 1 ]; then


echo "L'utilisateur existe"
else
echo "L'utilisateur n'existe pas"
fi

Vous aimerez peut-être aussi