a. Script 1 : afficher le nombre de fichiers par type
a. Script 2 : ré-écrire le script ci-haut avec des sous-processus (&)
Note
Dans ce cours, un script est un fichier .sh
contenant des commandes
Vous devez remettre et faire valider au courant des 2 prochaines séances.
À remettre sur Moodle:
Vos deux fichiers .sh
Vos captures d’écran
Captures d’écran:
Fichier | Contenu | Annotations |
---|---|---|
01_nombre_par_type.png | Appel à nombre_par_type.sh et résultat | Votre nom d’usager Linux |
03_proc.png | Appel à nombre_par_type_proc.sh | Votre nom d’usager Linux |
04_temps.png | Temps d’exécution séquentiel Vs concurrent | Votre nom d’usager Linux |
$ nb=$(ls | wc -l)
Cette commande stocke le nombre de fichiers dans la variable nb
.
Pour comparer la valeur d’une variable à un chiffre :
$ test $nb -eq 10
Cette commande compare nb
à 10. Si les deux sont égaux
alors le code de retour de la commande test
sera
0 sinon il sera différent de 0.
On peut alors écrire :
$ test $nb -eq 10 && echo "Les deux valeurs sont égales" || echo "Les deux valeurs sont différente"
for
Vous disposez de la varieble serveurs
et vous souhaitez
la parcourir :
$ serveurs="google.com facebook.com youtube.com" $ for i in $serveurs; do echo $i; done
nombre_de_fichiers.sh
types="java conf txt png tiff"
Pour chaque $types de fichiers, afficher:
le nombre de fichiers de ce type
si 0, afficher: Il n’y aucun fichier $type
(aucun autre affichage)
Exemple de sortie
Décompte des fichiers java conf txt png tiff Il y a 50718 fichiers .java Il y a 1171 fichiers .conf Il y a 6999 fichiers .txt Il y a 67296 fichiers .png Il n'y a aucun fichier .tiff
nombre_par_type_proc.sh
Fait la même chose que ci-haut, mais utilise & pour le faire en arrière plan
Les commandes find s’exécutent en même temps
IMPORTANT: utiliser (CMD1;CMD2;…)& pour créer un sous-processus
IMPORTANT: sauvegarder le pid tout de suite après l’utilisation de &
À la fin du script, s’assurer de faire wait sur chacun de ces pids
De cette façon: le script attend la fin de chacun des sous-processus avant de quitter
Décompte des fichiers java conf txt png tiff [Démarrage des processus] Il y a 1171 fichiers .conf Il n'y a aucun fichier .tiff Il y a 67296 fichiers .png Il y a 50718 fichiers .java Il y a 6999 fichiers .txt [Arrêt des processus]
$ time bash nombre_par_type.sh Décompte des fichiers java conf txt png tiff Il y a 50718 fichiers .java Il y a 1171 fichiers .conf Il y a 6999 fichiers .txt Il y a 67296 fichiers .png Il n'y a aucun fichier .tiff real 0m11,009s user 0m4,543s sys 0m6,395s $ time bash nombre_par_type_proc.sh Décompte des fichiers java conf txt png tiff [Démarrage des processus] Il y a 50718 fichiers .java Il y a 6999 fichiers .txt Il y a 67296 fichiers .png Il n'y a aucun fichier .tiff Il y a 1171 fichiers .conf [Arrêt des processus] real 0m3,196s user 0m5,797s sys 0m7,622s
Le temps real est le temps écoulé dans la vrai vie
Le temps CPU est la somme de user et sys
NOTE: user est le temps CPU de vos processus
NOTE: sys est le temps CPU des appels au noyau