Untitled document (8)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 11

Rapport lab 2 TP Unix Utilisateur Sidiki Dao Génie logiciel

Exercice1:
#!/bin/bash
if [ $# -eq 1 ]
then
s=$1;
h=`expr $s / 3600`;
s=`expr $s % 3600`;
m=`expr $s / 60 `;
s=`expr $s % 60`;
echo "Il fait $h : $m : $s ";
else
echo "Veuillez faire passer le temps en secondes";
Fi

Exercice2:

#!/bin/bash
if [ $# -eq 1 ]
then
chaine=`echo $1 | tr ',' ' '`
nb=0;
for mot in $chaine
do
echo $mot;nb=`expr $nb + 1`;
done
echo "Le nombre de ligne est : $nb";
else
echo "Veuillez faire passer une chaine en argument representant les lignes sepraés par
virgule";
Fi
Exercice3:

#!/bin/bash
if [ $# -eq 2 ] && [ -f $1 ]
then
if [ -e $2 ]
then
rm $2
fi
while read LINE
do
echo $LINE >> $2;
done < $1
else
echo "Veuillez faire passer deux fichiers en arguments";
Fi

Exercice 4 :
#!/bin/bash
function ajouterFichier(){
read -p "Veuillez saisir le nom de la fiche : " name;
read -p "Veuillez saisir le numero de la fiche : " numero;
echo "$name, $numero" >> $1;
}
function rechercherFichier(){
read -p "Veuillez saisir le nom de la fiche à chercher : " name;
trouv=0;
while read LINE
do
pin=`echo $LINE| tr ',' ' '`;
trouve=0;
for mot in $pin
do
if [ "$mot" = "$name" ]
then
trouve=1;break;
fi
done
if [ $trouve -eq 1 ]
then
echo "Cette fiche existe avec les informations suivantes : $LINE";
trouv=$trouve;
fi
done < $1
if [ $trouv -eq 0 ]
then
echo "$trouv Desolé Cette fiche n'exite pas dans votre repertoire";
fi
}
function detruireFichier(){
echo "" > tempFILE;
read -p "Veuillez saisir le nom de la fiche à detruire : " name;
while read LINE
do
pin=`echo $LINE| tr ',' ' '`;
trouve=0;
for mot in $pin
do
if [ "$mot" = "$name" ]
then
trouve=1;
fi
done
if [ $trouve -eq 0 ]
then
echo $LINE >> tempFILE;
fi
done < $1
cat tempFILE > $1
}
function modifierFichier(){
echo "" > tempFILE;
rm tempFILE;
read -p "Veuillez saisir le nom de la Fiche à modifier : " name;
trouv=0;
while read LINE
do
pin=`echo $LINE| tr ',' ' '`;
trouve=0;
for mot in $pin
do
if [ "$mot" = "$name" ]
then
trouve=1;
fi
done
if [ $trouve -eq 0 ]
then
echo $LINE >> tempFILE;
fi
done < $1
if [ $trouve -eq 1 ]
then
read -p "Veuillez saisir le nouveau numero de phone de la personne : " numero;
echo "$name, $numero" >> tempFILE;
else
echo "Cette fiche n'existe pas ";
fi
cat tempFILE > $1;
}
function listerAnnuaire(){
while read LINE
do
echo $LINE;
done < $1
}
if [ $# -eq 1 ]
then
while true
do
clear;
echo "BIENVENU DANS VOTRE GESTION D'AGENDA\n";
echo "Tapez 1 Pour ajouter une fiche\n";
echo "Tapez 2 Pour rechercher une fiche\n";
echo "Tapez 3 Pour modifier une fiche\n";
echo "Tapez 4 Pour detruire une fiche\n";
echo "Tapez 5 Pour Lister l'annuaire \n";
echo "Tapez 6 Pour quitter l'annuaire\n";
choix=0;
while [ $choix -lt 1 ] || [ $choix -gt 6 ]
do
read -p "Votre choix : " choix;
done
if [ $choix -eq 1 ]
then
ajouterFichier $1;
else
if [ $choix -eq 2 ]
then
rechercherFichier $1;
else
if [ $choix -eq 3 ]
then
modifierFichier $1;
else
if [ $choix -eq 4 ]
then
detruireFichier $1;
else
if [ $choix -eq 5 ]
then
echo "Affichage de L'annuaire";
listerAnnuaire $1;
else
echo "Merci";exit 0;
fi
fi
fi
fi
fi
read -p "Press any key to continue .......";
done

else
echo "Veuillez faire passer l'annuaire en paramètre";
Fi

/*Affichage du Menu*/
/*Ajout d’une nouvelle fiche */

/*Recherche d’une fiche par son nom */

/*Modification d’une nouvelle fiche par son nom et son nouveau numero */

/*Destruction d’une fiche par son */

/*Affichage de l’annuaire*/
/*Quitter l’annuare*/

Veuillez Noter qu’il faut faire passer l’annuaire en paramètre d’ailleurs cela est exigé par le code

J’ai éffectué un programmé modulaire qui permet de ne pas avoir à trop écrire dans le while .

Exercice 5 :

#!/bin/bash
if [ $# -eq 1 ] && [ -f $1 ]
then
while read LINE
do
echo $LINE
done < $1
else
echo "Veuillez faire passer un fichier en entrr s'il vous plait";
fi
Exercice 6:

#!/bin/bash
if [ $# -eq 2 ] && [ -f $2 ]
then
if [ "$1" = "+r" ]
then
echo "Donner de le droit de lecture sur : " $2 ;
chmod u+r $2;
else
if [ "$1" = "+w" ]
then
echo "Donner le droit d'écriture sur : " $2;
chmod u+w $2;
else
if [ "$1" = "-r" ]
then
echo "Retirer le droit de lecture sur : " $2;
chmod u-r $2;
else
if [ "$1" = "-w" ]
then
echo "Retirer le droit d'écriture sur : " $2;
chmod u-w $2;
else
echo "Veuillez saisir un droit valide";
fi
fi
fi
fi
else
echo "Veuillez faire passer deux arguments à votre script le droit puis le nom du fichier ";
fi

Exercice 7:

#!/bin/bash
if [ $# -eq 1 ] && [ -f $1 ]
then
read -p "Voullez vous vraiment supprimer $1 " reponse;
while [ "$reponse" != "oui" ] && [ "$reponse" != "non" ]
do
read -p "Veuillez saisir une reponse valide oui/non" reponse;
done
if [ "$reponse" = "oui" ]
then
rm $1;
echo "Fichier supprimé avec succès";
else
echo "Supression abandonnée";
fi
else
echo "Veuillez faire passer un fichier ordinaire en paramètre";
fi

Exercice 8 :

Ici c’est ma partie preferée les pizzas, j’attend juste les congés pour sortir bien me regaler merci
pour cette question dans le test .

#!/bin/bash
pizza_ingredients=("cheese" "tomato sauce" "pepperoni" "mushrooms" "olives" "green peppers"
"onions")
for ingredient in "${pizza_ingredients[@]}"
do
echo $ingredient
done

Quelques sources dont j’ai eu à utiliser:


StackOveflow: Pour le débogage j’ai pas directement écrit tout ces codes et tout a marché
comme par magie, j’ai eu à faire beaucoup de recherches sur l’utilisation des fonctions,
l’utilisation des tableaux comme dans l’exercice 8, et les fonctions en exercice 4..Car étant
étudiant en Génie logiciel je crois que rendre le code modulaire le rend plus lisible et
comprehensible….

Youtube: Bien vrai qu’il y a tellement de video clickbait, j’ai eu à voir des videos sur certaines
chaines youtube ds videos qui ont permis que je comprenne certaines pratiques que je faisais
dans le bash depuis fort longtemps mais ce test m’a donné envie de les comprendre mieux et
donc j’ai pu voir les pourquoi de plusieurs choses et leurs applications dans mon code……

ChatGPT: Je ne peux finir mes sources sans le citer car , bien vrai que je le conseille à
quelqu’un qui apprend d’y aller tout collecter, je trouve qu’il me donne des explications assez
simple par rapport à google, ce qui me permet de gagner du temps dans la comprehension et
donc plus de temps dans la pratique qui est le vrai but …….

STackExchange: Ce lab m’a tellement fait aimer le bash que j’ai eu à discuter avec des
étudiants de carrement autres pays à travers ce forum, même si je me sentais moins bon par
rapport à eux, j’ai appris que tant qu’on a un pc, on peu toujours bien se former car il n’ya
presque pas de problèmes qu’on puisse rencontrer et qu’aucun autre développeur n’ait déjà
rencontré …..

Au delà de ce rapport je vous remercie personnellement car j’ai eu plus qu’une


évaluation grace à ce test merci Professeur

Vous aimerez peut-être aussi