Bonsoir,
l'algorithme a l'air correct, et utiliser bash n'est pas un mauvais choix en soi ici, surtout si c'est pour te faire la main avec.
Juste quelques petites remarques pour améliorer ton script qui est déjà pas mal 🙂 :
1) pour gagner un niveau d'imbrication (ton script n'en sera que plus lisible ainsi), je te suggère d'inverser la première condition, celle qui teste la réponse à la question « Êtes-vous toujours certain de vouloir lancer ce programme ... » :
if [ $commencer = o ]
then
...
else
echo "[STOP] Vous avez arrêté le porgramme, car vous n'avez pas répondu o pour oui."
fi
À changer en :
if [ "$commencer" != o ]; then
echo "[STOP] Vous avez arrêté le porgramme, car vous n'avez pas répondu o pour oui."
exit
fi
Tu noteras les guillemets rajoutés autour de $commencer, au cas où l'utilisateur s'amuserait à saisir une chaîne avec espaces.
Tu pourras faire de même quand tu testes la validité du répertoire d'entrée saisi :
if ! [ -d "$repertoire" ]; then
echo "[STOP] $repertoire n\est pas un répertoire valide."
exit
fi
Je te laisse deviner pour tester la validité du répertoire de copie ce que tu peux modifier 😉
2) À propos de la boucle de parcours des fichiers spip*.html :
for fichier in `ls $repertoire/spip*.html`
Le « ls » ici est à prohiber, il n'y aura pas de gestion des fichiers à espaces avec. Et tant bien même il n'y en aurait pas, la construction suivante est plus élégante... Et plus simple surtout 😉
for fichier in "$repertoire"/spip*.html
Ce sont les premières remarques qui me viennent après survol rapide. D'autres commentaires suivront 😉