Lab Programmation Bash 2

Document Sample
Lab Programmation Bash 2 Powered By Docstoc
					Administration Linux et Windows                          Programmation BASH – Red Sun Studio
Cégep du Vieux Montréal


Générateur de la page Web « produits » pour Red Sun Studio

Mise en situation...
Red Sun Studio est une firme se spécialisant dans la vente de senseurs en robotique. Voici quelques
exemple de senseurs :
   - Infrarouge
   - Ultrasons
   - Ultraviolet
   - Tactile
   - Vibration
   - Lumière ambiante
   - Température

Comme les quantités en stock varient, Red Sun Studio vous a approché pour vous demander un
générateur de page Web pour la section produits de leur site.


La demande...
La compagnie aimerait avoir un script BASH permettant de modifier la page produits.html. Ce script
aurait les options suivantes :
    - Ajouter un produit
    - Supprimer un produit
    - Effacer la liste de produits
    - Générer la page web produits.html
    - Quitter le programme

Voici un exemple du menu principal du programme/script :




                                                1 de 5
Administration Linux et Windows                             Programmation BASH – Red Sun Studio
Cégep du Vieux Montréal

Voici un exemple de la page produits.html produite par le script BASH.




La page que vous ferez peut être visuellement sans style (css) et plus simple. Le but ici est de mieux
maîtriser la programmation BASH, pas le HTML.

Ce qui change dans la page Web est la liste de produits (où il y a les points noirs). Le reste est du texte
statique qui ne change pas.


Fonctionnement général du programme
L’option [a]
Cette option permet d’ajouter un produit. La liste de produits est sauvegardée dans un fichier texte.
Exemple : listeProduits.txt




                                                   2 de 5
Administration Linux et Windows                              Programmation BASH – Red Sun Studio
Cégep du Vieux Montréal

L’option [v]
Cette option permet de supprimer le fichier listeProduits.txt

L’option [s]
Cette option est la plus difficile à faire et devrait être faite en tout dernier.
Lorsque l’usager choisit cette option, alors chaque ligne du fichier listeProduits.txt est affichée, préfixée
de son numéro de ligne.

Exemple :




L’usager entre ensuite le numéro de la ligne qu’il veut supprimer. La ligne est finalement supprimée du
fichier listeProduits.txt

L’option [g]
Cette option régénère le fichier produits.html. La liste des produits est affichée en ordre croissant.

Voici un exemple de base en BASH pour la génération du fichier :

cat << _EOF_ > produits.html

<html>
         <body>
                  <ul>
                         $(listeProduits)
                 </ul>
         </body>
</html>
_EOF_
Le code ci-haut va lire à partir de la ligne <html>, jusqu’à ce qu’il rencontre _EOF_ et y placera ces lignes
dans le fichier produits.html.

La ligne $(listeProduits) veut dire : Appelle la fonction listeProduits. Donc, dans la fonction listeProduits,
il faudra lire chaque ligne du fichier listeProduits.txt et y faire des echo comme suit :
         Pour chaque ligne du fichier :
                  echo "<li>$ligne</li>"




                                                    3 de 5
Administration Linux et Windows                               Programmation BASH – Red Sun Studio
Cégep du Vieux Montréal

L’option [q]
Option permettant de quitter le programme


Les étapes de réalisation
Vous vous sentez confiant de le faire sans aide, allez-y ! Pour les autres, voici les étapes que je suggère
de suivre.


Étape 1 : Création du squelette et de la fonction afficherMenu()
Cette étape est tout simplement de faire la fonction afficherMenu(), qui affichera à l’écran le menu du
programme (voir impression écran du programme à la page 1).


Étape 2 : Ajouter l’option pour quitter le programme
Lorsque la fonction afficherMenu est terminée, faire une boucle qui affiche le menu et demande le choix
de l’utilisateur.

Si l’utilisateur entre « q », alors le programme quitte la boucle et le programme s’arrête.


Étape 3 : Créer une fonction genererHTML()
Il faut ensuite créer la fonction genererHTML(), permettant de créer un fichier produits.html avec le
HTML de base. Ce HTML peut être très simple. Pour un exemple de comment s’y prendre, voir page 3.

Si l’utilisateur entre « g », alors la fonction genererHTML() est appelée et la page produits.html est créée
ou regénéréée.


Étape 4 : Créer une fonction ajouterProduit()
Si l’utilisateur entre « a », alors le programme demande à l’utilisateur le nom d’un produit (en un mot).

Ce nouveau produit est écrit dans un fichier texte (listeProduits.txt). Si le fichier existe, alors il écrit ce
nouveau produit à la fin du fichier.


Étape 5 : Modifier genererHTML()
Une liste de produits étant disponible, il s’agit de modifier la fonction genererHTML en y ajoutant la liste
de produits.

Crééz vous une fonction listeProduits. Cette fonction fera un echo pour chaque ligne du fichier
listeProduits.txt (echo "<li>$ligne</li>").




                                                     4 de 5
Administration Linux et Windows                               Programmation BASH – Red Sun Studio
Cégep du Vieux Montréal

Étape 6 : Créer une fonction effacerProduits()
Si l’utilisateur entre la lettre « v », alors la fonction effacerProduit est appelé. Celle-ci supprimera le
fichier listeProduits.txt.


Étape 7 : Créer une fonction supprimerProduit()
Cette fonction est la plus délicate. Voici son fonctionnement.

Lorsque l’utilisateur entre la lettre « s », la fonction supprimerProduit() est appelée.

Cette fonction lit le fichier listeProduits.txt et pour chaque ligne, elle en fait un « echo », préfixé de son
numéro de ligne (voir impression écran page 3).

L’usager est invité à écrire le numéro de la ligne qu’il veut supprimer.

S’assurer d’avoir les lignes du fichier listeProduits.txt dans une variable. Ensuite, supprimer le fichier.

Finalement, grâce à la variable contenant les lignes du fichier listeProduits, on fait une boucle :

Pour chaque ligne
       Si son numéro de ligne est différent du numéro entré par l’usager
                On l’insère dans listeProduits.txt




                                                     5 de 5

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4
posted:10/4/2012
language:French
pages:5