Bonjour,
Je débute en bash et j'aimerai arriver au résultat ci dessous.

Nom : Capture.PNG
Affichages : 502
Taille : 16,0 Ko

Voici ce que j'ai fais jusqu'à maintenant et je bloque sur la partie ventilation.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
#! /bin/bash
 
#fonction qui crée les dossiers et fichiers de départ
createdirfile(){
   cd /home/fred/examen
   mkdir Resultats Etudiants Bulletins Backup Palmares
   cd /home/fred/examen/Resultats
   echo -e "Michel 10\nFred 8" >> math
   echo -e "Michel 20\nLuc 3\nPol 10\nFred 13" >> OS
   echo -e "Luc 9\nMichel 14\nFred 19" >> analyse
   echo -e "Luc 7\nMichel 18\nPol 4" >>DB
}
 
#fonction qui efface les dossiers et fichiers de départ
deldirfile(){
   cd /home/fred/examen
   rm -r Resultats Etudiants Bulletins Backup Palmares
}
 
#fonction qui boucle le fichier Resultats et récupère tous les noms de fichier qu'il contient dans un tableau.
recupfilename(){
   cd ../Resultats
   files=(*)
   cd ..
}
 
#fonction qui boucle sur tous les fichiers du dossier Resultats et qui récupère
#les noms des Etudiants pour créer un fichier à leur noms dans le dossier Etudiants'
createfileEtudiants(){
   cd /home/fred/examen/Etudiants
   #boucle tous les fichiers du répertoire Résultats
   for fic in `ls /home/fred/examen/Resultats/*`
   do
      #lis chaque ligne de chaque fichiers
      while read ligne;
      do
         #récupère le premier mot -f1(nom etudiant) et crée un fichier avec son nom dans le dossier courant (xargs touch)
         #xargs construit et exécute des lignes de commandes à partir de l'entrée standard.
         echo $ligne | cut -f1 -d" " | xargs touch;
      done < $fic
   done
}
 
#menu de départ
echo "Entrez votre choix"
select choix in "Ventilation" "Bulletin" "Palmares" "Consultation" "Creation Documents" "Effacer Documents" "Quitter"
do
   case "$REPLY" in
      1) echo "Menu Ventilation"
           recupfilename files
           echo "${files[@]}"
           createfileEtudiants;;
      2) echo "Menu Bulletin";;
      3) echo "Menu palmares";;
      4) echo "menu Consultation";;
      5) echo "Menu Création Document"
         createdirfile;;
      6) echo "Menu Effacer"
         deldirfile;;
      7) echo "Quitter"; break;;
   esac
done
je veux en gros:
lire ligne de mes fichiers cours avec les résultats.
dans chaque fichier cours, lire deux mots (nom et cote)
voir si premier mot (etudiant existe)
sinon le créer
ajouter le nom du cours et le note dans le fichier de l'étudiant.