Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Premier script shell

6 Novembre 2012

Le résultat de notre projet sera présenté sous forme de tableau html, que nous aurons généré automatiquement. La première étape de notre travail consiste donc pour nous à obtenir un tableau contenant toutes les URLS que nous avons relevées, numérotées. Nous enrichirons ce tableau au cours de l'avancée de notre travail.

Voici donc notre premier script et son résultat, une page contenant quatre tableaux, un pour chaque langue que nous traiterons :

Publicité

#!/bin/bash

# récupération des coordonnées des fichiers d'input et d'output et enregistrement dans des variables

read URLallemand;
read URLanglais;
read URLchinois;
read URLfrancais;
read tablo;

# mise en place de l'en-tête de la page html

echo "<html>" > $tablo;
echo "<head>" >> $tablo;
echo "<meta http-equiv=\"Content-Type\" content=\"texte/html;charset=ISO-8859-1\"> </head> <body>">> $tablo;

# création du tableau pour les URLS de l'allemand

echo "<table border=\"2\">" >> $tablo;
echo "<th bgcolor=\"grey\" colspan=\"2\">Liste URL allemand</th>" >> $tablo;

numligne=1;

while read url
do
echo "<tr><td> <font color=\"red\">$numligne</font> </td><td><a href=$url\" target=\"_blank\">$url</a></font> </td></tr>" >> $tablo;
let "numligne=numligne+1";
done <$URLallemand;

echo "</table><br><br>" >> $tablo;


# création du tableau pour les URLS de l'anglais

echo "<table border=\"2\">" >> $tablo;
echo "<th bgcolor=\"grey\" colspan=\"2\">Liste URL anglais</th>" >> $tablo;

numligne=1;

while read url
do
echo "<tr><td> <font color=\"red\">$numligne</font> </td><td><a href=$url\" target=\"_blank\">$url</a></font> </td></tr>" >> $tablo;
let "numligne=numligne+1";
done <$URLanglais;

echo "</table><br><br>" >> $tablo;

# création du tableau pour les URLS de le chinois

echo "<table border=\"2\">" >> $tablo;
echo "<th bgcolor=\"grey\" colspan=\"2\">Liste URL chinois</th>" >> $tablo;

numligne=1;

while read url
do
echo "<tr><td> <font color=\"red\">$numligne</font> </td><td><a href=$url\" target=\"_blank\">$url</a></font> </td></tr>" >> $tablo;
let "numligne=numligne+1";
done <$URLchinois;

echo "</table><br><br>" >> $tablo;

# création du tableau pour les URLS de le français

echo "<table border=\"2\">" >> $tablo;
echo "<th bgcolor=\"grey\" colspan=\"2\">Liste URL fran&ccedilais</th>" >> $tablo;

numligne=1;

while read url
do
echo "<tr><td> <font color=\"red\">$numligne</font> </td><td><a href=$url\" target=\"_blank\">$url</a></font> </td></tr>" >> $tablo;
let "numligne=numligne+1";
done <$URLfrancais;

echo "</table><br><br>" >> $tablo;


# fin de la page html

echo "</body>" >> $tablo;

Voici ce qu'il faut taper en ligne de commande, sans oublier le fichier d'input :

Publicité
Premier script shell

Et voilà le résultat!

Publicité

Quelques remarques :

- Nous avons pris soin de faire en sorte que pages s'ouvrent dans un nouvel onglet en ajoutant l'attribut target="_blank" à la balise <a>.

- Nous avons été confrontées aux premières difficultés liées à l'encodage des caractères chinois. Le fichier contenant les URLS en chinois était encodé en UTF-16 Little-Endian et nous avons dû le recoder en unicode UTF-8 pour que le script fonctionne.

- Nous ne comprenons pas pourquoi les tableaux des URLS ont des largeurs toutes différentes en fonction des langues. Ceci ne présente pas véritablement de problème pour la suite de notre projet, puisque toutes les URLS rentrent dans les tableaux, mais nous en sommes curieuses et nous allons tâcher d'arranger ce détails à l'avenir, par soucis d'esthétique entre autre.

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
S
Actuellement, chacun des tableaux a une largueur correspondant à la plus longue URL...<br /> Vous pouvez attribuer une taille fixe à votre tableau via un attribut width par exemple sur la balise table...
Répondre
S
On verra demain comment traiter plus efficacement vos différents fichiers d'URL...
Répondre