vendredi 11 novembre 2011

exercices

Pour faire des tableaux contenant les 3 fichiers qui contiennent les URLs de chaque langue, j'ai tapé le script suivant dans text wrangler et je l'ai enregistré dans le dossier /Projet-mot-sur-le-Web/PROGRAMMES/fait-tableau-v1.sh :

#!/bin/bash
echo "Donnez le nom du fichier contenant les liens http : "; 
read fic; 
echo "Donnez le nom du fichier html o˘ stocker ces liens : "; 
read tablo; 
echo "<html><head><title>tableau de liens</title></head><body><table border=\"1\">" > $tablo; 
for nom in `cat $fic` 
do
echo "<tr><td>$nom</td></tr>" >> $tablo; 
done
echo "</table></body></html>" >> $tablo;    

J'ai changé les accolades ouvrantes et fermantes en "do" et "done" respectivement. Quand j'ai essayé d'exécuté le script pour la première fois dans mon terminal, j'avais des erreurs parce que j'avais oublié de précisé le chemin relatif exacte du dossier où il fallait stocker les tableaux. Vu que j'avais exécuté le script en me plaçant dans le répertoire PROGRAMME, je n'avais pas fait attention (après avoir dit au programme d'aller dans le répertoire URLs pour récupérer les fichiers textes) que le répertoire courant n'était plus PROGRAMMES mais URLs, et donc j'ai changé mon chemin relatif pour stocker les fichiers html en ../TABLEAUX/tableau-url-en.html, et ainsi de suite pour les deux autres.


Pour la deuxième étape, j'ai tapé le script qui va permettre de numéroter les Urls dans chaque tableau. Ce script a deux variables: i et j. Variable i étant pour compter les tableaux et variable j pour compter les Urls. On utilise une nouvelle commande "let" qui permet au programme de faire des calculs algébriques. Ainsi le programme va automatiquement donner un numéro a chaque lien et a chaque tableau. On utilise des structures conditionnelles pour pouvoir faire des boucles avec les commandes  "for" "in" "do" "$i" "$j" "let""done". 
Le script:

#!/bin/bash
echo "Donnez le nom du repertoire contenant les fichiers des URLs : "; 
read REP; 
echo "Donnez le nom du fichier html ou stocker les tableaux des liens : "; 
read tablo; 
echo "<html><head><title>tableaux de liens</title></head><body>" > $tablo;
echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo; 
#Variable pour compter les tableaux
i=1;
for fic in `ls $REP`
do 
echo "<table align=\"center\" border=\"1\"><tr><td colspan=\"2\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><b>Tableau n∞ $i</b></font></td></tr>" >> $tablo; 
# Variable i pour compter les URLs
j=1;
for nom in `cat $REP/$fic` 
do
echo "<tr><td align=\"center\" width=\"50\">$j</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td></tr>" >> $tablo;
let "j+=1"; 
done
echo "</table>" >> $tablo; 
let "i+=1"; 
echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo;
done
echo "</body></html>" >> $tablo; 


Son execution:


Natalys-MacBook-Pro:PROGRAMMES natalyjahchan$ sh ./fait-tableau-v3.sh
Donnez le nom du r?pertoire contenant les fichiers des URLs : 
../URLS
Donnez le nom du fichier html o? stocker les tableaux des liens : 
../TABLEAUX/tableau-url-eng-fr-queb.html
Natalys-MacBook-Pro:PROGRAMMES natalyjahchan$

Je n'ai pas eu de problème pour exécuter le script une fois qu'il n'y avait plus d'erreurs de syntaxe. La première fois j'avais oublié un $rep en essayant de retaper le script et le terminal ne semblait pas vraiment apprécier. Toutefois, quand je me suis rendu compte de cela et par conséquent rectifier mon (mini mais grave quand même) erreur, tout semblait bien fonctionner :


2 commentaires:

  1. C'est parfait...
    Il y a juste une petite dans le commentaire avant la création de la variable j : c'est j qui est le compteur d'url et non pas i qui compte les tableaux.
    Vous pourriez aussi modifier l'affichage html du numéro de tableau en écrivant :
    Tableau n°$i

    SF

    RépondreSupprimer
  2. il fallait lire "il y a juste une petite erreur" dans le commentaire précédent...

    RépondreSupprimer