Script de l'étape 1 :






L'idée c'est que pour chaque url contenue dans un fichier, on crée une nouvelle ligne et une nouvelle cellule dans notre tableau en html. Lorsque la consigne dit pour chaque, le script dit : fais une boucle ! Et la boucle ici, ça se traduit par FOR.

for url in `cat ../URLS/$dossier/$fichier`;
{
echo "<tr><td><a href=\"$url\">$url</a></td></tr>" >> $tablo;
}


La boucle FOR dit que pour chaque élément d'une liste, il va appliquer la commande qu'il y a entre les {accolades}. Quelle liste ? Nous avons décidé de lui donner une liste qui est le résultat d'une commande, CAT, qui va lire le contenu d'un fichier. C'est très simple. Si on fait uniquement CAT puis on indique le chemin (relatif ou absolu) d'un fichier, il va afficher ligne par ligne son contenu. Ceci est donc une liste d'éléments. Pour dire que nous voulons exploiter le résultat de la commande CAT, on utilise des guillemets inversés (inverted quotes) `AltGr+7+espace` Ici, nous avons appelé notre élément de liste url. C'est une variable dont le contenu change à chaque tour de boucle.
Quel niveau ? Nous avons décidé d'aller chercher toutes les URLS de notre arborescence. Il faut donc aller chercher chaque url de chaque fichier de sens, dans chaque dossier de langue. Plusieurs "chaque" = plusieurs boucles.
On a donc 3 boucles FOR les unes dans les autres:

for dossier in `ls ../URLS`;
{
  for fichier in `ls ../URLS/$dossier`;
  {
    for url in `cat ../URLS/$dossier/$fichier`;
    {
    }
  }
}

La commande LS lit le contenu d'un dossier.
Pour utiliser la valeur d'une variable, on place un $ juste devant, ce qui explique $dossier et $fichier dans le chemin qu'on indique au CAT, et $url dans la valeur qu'on inscrit dans chaque ligne et cellule du tableau.
Notons le back slash \ devant les guillemets de la ligne ECHO : il permet d'échapper l'action du guillemet en temps normal (ici, ça fermerait l'argument d'ECHO), et il permet de traiter le guillement comme n'importe quel autre caractère dans une chaîne de caractère.