Classe:..................... Nom:................................
Groupe: ……………. Prénom:...........................
CONTRÔLE : SYSTÈME D’EXPLOITATION 4
3IIR
Questions de compréhension :
Rappels:
- l’option +%F de la commande date permet d’afficher la date au
format 2018-04-27.
- “bc” est un utilitaire qui permet de faire des opérations
mathématiques (basic calculator).
A- Soit un script ~/bin/[Link] qui contient le code suivant :
#!/bin/bash
[ $# -ne 2 ] && echo "USAGE: `basename $0` fichier date" >&2 && set "[Link]" $(date +%F)
var1=$1 ;echo ${var1/.txt/}; shift; echo $#;
Sachant que notre script est exécutable et qu’on le lance sous bash de
la manière suivante: $ ~/bin/[Link]
1. Quel serait le résultat affiché à la console? (3pt)
USAGE: [Link] fichier date……………….
test………………………………………………………………………………………….
1………………………………………………………………………………………………….
………………………………………………………………………………………………….
2. Quel serait le message affiché si on remplace set "[Link]" $(date +%F)
par set "1" "2" "3" (2pt)
USAGE: [Link] fichier date……………….
1………………………………………………………………………………………………….
2………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
3. Donnez la ligne qui permettra d'exécuter ce script en redirigeant
les messages d’erreurs vers un fichier [Link] .(2pt)
~/bin/[Link] 2>> [Link] ………………………………………………………………………………………….
4. Donnez la ligne crontab qui permettra d'exécuter ce script chaque
deux jours à minuit et à midi en renvoyant la sortie standard et
les erreurs vers un fichier [Link] (3pt)
0 0,12 */2 * * ~/bin/[Link] &>> [Link]…………………………………………….
B- Quelle est la différence entre ./[Link] et . [Link] (1pt)
Dans le premier cas, le script doit être exécutable et sera interprété
dans un sous-shell et dans le deuxième il sera interprété dans le
shell courant (sourcing).
Dr. M. BELATAR page 1/2 2019
Exercice 1 : interprétation
Quel serait le résultat à l’affichage après l'exécution du script
suivant:(4pt)
#!/bin/bash
var1=`(var2=1.11; echo "3*$var2" | bc)`
var3="${var1:+55}.${var2:-$var1}"
var1="${var1}.$var3"
echo "${var1/./1}.${#var3}"
Affichage final :3133.[Link]………………………………………………………………………………….
Exercice 2 : programmation (5pt)
Soit un fichier csv au format suivant:
kamal;math;5;hassan
kamal;algèbre;10;hassan
hamid;histoire;20;salma
najat;histoire;17;salma
ayman;TP info;16;assia
ayman;math;20;hassan
kamal;traduction;9;james
ayman;compilation;19;said
Ecrire un script qui prend ce type de fichier en premier argument et
un nom d’étudiant en deuxième argument. Le script doit se baser sur
les commandes de filtrage de données comme tr, grep, sort, cut, head,
sed … etc pour afficher la meilleure note de l’étudiant donnée ainsi
que la matière dans laquelle il l’a obtenu, et le nom du professeur.
PS: Le premier champs correspond au nom de l’étudiant et le dernier
champs correspond au nom du prof.
PS: Ne pas utiliser awk pour résoudre cet exercice!
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………
Dr. M. BELATAR page 2/2 2019