Classe:..................... Nom:................................
Groupe: ……………. Prénom:...........................
CONTRÔLE : SYSTÈME D’EXPLOITATION
3IIR
Questions de compréhension :
A- L’option -n de la commande echo permet d’ignorer les
caractères spéciaux?(1pt)
1. ⭘ VRAI / ⛒ FAUX :JUSTIFICATION : annule le retour à la ligne……………….
B- Soit un script ~/bin/monscript.sh qui contient le code
suivant :
#!/bin/bash
var1=$0
[ $# -ne 2 ] && echo "USAGE: `basename $0` fichier date" && exit 1
Sachant que notre script est exécutable et qu’on le lance sous
bash de la manière suivante: $ ~/bin/monscript.sh
1. Quelle est la valeur de $0 dans ce cas? (2pt)
…~/bin/monscript.sh……………………………………………………………………………………………….
2. Quel serait le message affiché à la console? (2pt)
…USAGE: monscript.sh fichier date……………………………………………………………………………………………….
3. Quelle serait la valeur de var1 après la fin de
l'exécution du script. (1pt)
…vide/Non déclarée……………………………………………………………………………………………….
4. Au lieu de quitter avec “exit 1” proposez une syntaxe
courte qui permet de vérifier si $1 n’est pas définie et
lui affecte une valeur par défaut “test.txt”. (2pt)
…[ $# -ne 2 ] && set “test.txt” “$(date)”……………………………………………………………………………………….
5. Donner la ligne crontab qui permettra d'exécuter ce
script chaque mercredi et samedi après-midi en le
répétant toutes les 15 minutes entre midi et 18h (sans
arguments). (2pt)
…*/15 12-17 * * 3,6
~/bin/monscript.sh…………………………………………….
C- Quelle est l’utilité du fichier /etc/profile ? (2pt)
…fichier d’initialisations et paramétrages du shell pour tous les
utilisateurs, géré par le root………….
Exercice 1 : interprétation
Quel serait le résultat à l’affichage après l'exécution du
script suivant:(3pt)
#!/bin/bash
var1=`(var2=10.1; echo "5*$var2" | bc)`
var4="${var1:-66}.${var2:+66}"
var1="${var1}.$var4" ; echo ${var1:2}
….5.50.5.……………………………………………………………………………
Dr. M. BELATAR page 1/2 2018
Rappel: “bc” est un utilitaire qui permet de faire des
opérations mathématiques (basic calculator).
Exercice 2 : programmation (5pt)
Ecrire un script qui se base sur la commande “free” pour
calculer instantanément le pourcentage de mémoire libre.
L’affichage doit être au format suivant:
“Le pourcentage de mémoire libre est de xx.xx%” en prenant le
soin d’afficher uniquement deux chiffres après la virgule.
Pour rappel, la commande free donne un résultat de la forme
suivante :
total utilisé libre partagé tamp/cache disponible
Mem: 32808000 18416896 989072 1241704 13402032 14828756
Partition d'échange: 4400124 0 4400124
Notez bien que la séparation entre les champs n’est pas
régulière et qu’elle est composée de plusieurs espaces.
……………………………………………………………………………………………………………………………………………………………………
#!/bin/bash
total=$(free | grep "Mem:" | tr -s " " "\t" | cut -f2)
libre=$(free | grep "Mem:" | tr -s " " "\t" | cut -f4)
pourcent=$(echo "$libre*100/$total" | bc)
printf "Le pourcentage de mémoire libre actuellement est de %.2f%%\n" $pourcent
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………
Dr. M. BELATAR page 2/2 2018