Tom's Guide > Forum > Programmation > Shell Script
Mot :    Pseudo :           
 

Je suis étudiant en informatique et dans le cadre d'un projet je souhaiterais avoir de l'aide sur le shell script!
Y-a-t-il des personnes qui s'y connaissent bien en shell script?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

ce que tu as a faire c sous nux je pense non ?
Presice stp...

Répondre à amnesiakk

Non non sur linux!

Si ça peut vous aider à m'aider je vous montre mon script!

#!/bin/bash
if [ $# = 1 ]
then
echo "Erreur! Il ne faut pas placer d'argument mais placer le SCRIPT dans le dossier voulu"
else
echo "Souhaitez-vous changer le nom de la page? [Oui ou Non]"
read choixnompage
#Si l'utilisateur répond oui, on va lui demander de saisir le nouveau nom de la page
if [[ $choixnompage == "Oui" || $choixnompage == "o" || $choixnompage == "O" || $choixnompage == "oui" ]]
then
echo "Quel est le nouveau titre de la page? "
read nompage
#Cette commande va permettre à l'utilisateur d'exécuter le script autant de fois qu'il le veut (quand il effectue des mises à jour) sans afficher plusieurs fois ces dossiers et ces fichiers
rm -f index.html
#Création de l'en-tête avec le nom de la page (celui saisi par l'utilisateur) et le nom de la fenêtre
echo "<html>
<head>
<title>Ma Page</title>
<body bgcolor="lightgoldenrodyellow">
<h1><center><i><b><font face="eurostile" size=7 color="black">$nompage</font></b></i><center>" >> index.html
else
#Si l'utilisateur répond non...
rm -f index.html
#Création de l'en-tête avec le nom de la page Par défaut
echo "<html>
<head>
<title>Ma Page</title>
<body bgcolor="lightgoldenrodyellow">
<h1><center><i><b><font face="eurostile" size=7 color="black">Index</font></b></i><center>" >> index.html
fi
#On va proposer à l'utilisateur de changer les noms de ces répertoires, s'il le souhaite
echo "Souhaitez-vous changer le nom de vos répertoires? [Oui ou Non]"
read reponse
#Si l'utilisateur saisi oui...
if [[ $reponse == "o" || $reponse == "oui" || $reponse == "O" || $reponse == "Oui" ]]
then
#Cette boucle va parcourir chaque répertoire
for rep in `find -type d`
do
#On va stocker dans "nomrep", le nom du répertoire formater à partir du slash
#Avec la commande awk, on va afficher le nom du répertoire sans le slash qui se trouve au début
nomrep=`echo $rep | awk 'BEGIN{FS="/"} {print $NF}'`
#A l'aide de cette boucle, on va éliminer le fichier '.': si le répertoire est '.' alors...
if [[ ! $rep == "." ]]
then
echo "Le nom du répertoire est $nomrep. Quel est son nouveau nom? "
read nomrep
#Création des index dans chaques répertoires
touch $rep/index.html
#Création des liens avec le nom qu'aura saisi l'utilisateur
echo "<u1>
<li><a href="$rep/index.html"><font face="eurostile, verdana" size=4 color="red"><center>$nomrep</center></font></a>" >> index.html
#Meme commande que pour l'index, elle va permettre de détruire ce qui se trouve à l'intérieur de chaque index, à chaque execution du script
rm -f $rep/index.html
echo " <h1><g><i><font face="eurostile" size=7 color="dodgerblue"><marquee>$nomrep</marquee></font></i></g></h1>" >> $rep/index.html
#Cette seconde boucle va parcourir chaque fichier trouvé dans chaque répertoire
for img in `ls $rep`
do
#suprime tout les blancs en double dans var et mes le resultat dans resultat
#De même que pour le nom des répertoires, on va stocker dans "nomimg", le nom du fichier formater du .*extension
#La commande va se positionner au point et afficher ce qui se trouve avant le .*extension
nomimg=`echo $img | awk 'BEGIN{FS="."} {print $NR}'`
#Test si c'est une image
if [[ ${img##*.} == "jpg" || ${img##*.} == "gif" || ${img##*.} == "bmp" ]]
then
#On va afficher le nom des images avec une icone
echo "<body bgcolor="honeydew">
<center>
<li><a href="$img"><center><font face="eurostile, verdana" size=3 color="red">$nomimg</center></font><img src="$img" align=absbottom width=120 height=110 hspace=50 vspace=10 border=1></a></td>" >> $rep/index.html
fi
#Test si c'est un fichier autre qu'une image
if [[ ${img##*.} == "ppt" || ${img##*.} == "doc" || ${img##*.} == "mp3" || ${img##*.} == "wav" || ${img##*.} == "zip" || ${img##*.} == "rar" || ${img##*.} == "txt" || ${img##*.} == "MP3" ]]
then
#On affiche que le nom du fichier sans icône
echo " <center>
<li><a href="$img"><font face="eurostile, verdana" size=3 color="red">$nomimg</font></a>
</center>
</body>
</u1>" >> $rep/index.html
fi
done
#Cette partie correspond à la création d'un lien retour vers la page d'accueil
echo "<hr width=150 color="black" align=center>
<a href="../index.html"><font face="impact, verdana" size=3 color="dodgerblue">Retour vers [$nompage]</font></a>
</head>
</html>" >> $rep/index.html
fi
done
#Si la réponse de l'utilisateur est non...
else
#Boucle pour le parcours des répertoires
for rep in `find -type d`
do
nomrep=`echo $rep | awk 'BEGIN{FS="/"} {print $NF}'`
if [[ ! $rep == "." ]]
then
touch $rep/index.html
#Création des liens avec le nom des répertoires Par défaut
echo "<u1>
<li><a href="$rep/index.html"><font face="eurostile, verdana" size=4 color="red"><center>$nomrep</center></font></a>" >> index.html
rm -f $rep/index.html
echo " <h1><g><i><font face="eurostile" size=7 color="dodgerblue"><marquee>$nomrep</marquee></font></i></g></h1>" >> $rep/index.html
for img in `ls $rep`
do
nomimg=`echo $img | awk 'BEGIN{FS="."} {print $NR}'`
if [[ ${img##*.} == "jpg" || ${img##*.} == "gif" || ${img##*.} == "bmp" ]]
then
echo "<body bgcolor="honeydew">
<center>
<li><a href="$img"><center><font face="eurostile, verdana" size=3 color="red">$nomimg</center></font><img src="$img" align=absbottom width=120 height=110 hspace=50 vspace=10 border=1></a></td>" >> $rep/index.html
fi
if [[ ${img##*.} == "ppt" || ${img##*.} == "doc" || ${img##*.} == "mp3" || ${img##*.} == "wav" || ${img##*.} == "zip" || ${img##*.} == "rar" || ${img##*.} == "txt" || ${img##*.} == "MP3" ]]
then
echo " <center>
<li><a href="$img"><font face="eurostile, verdana" size=3 color="red">$nomimg</font></a>
</center>
</body>
</u1>" >> $rep/index.html
fi
done
echo "<hr width=150 color="black" align=center>
<a href="../index.html"><font face="impact, verdana" size=3 color="dodgerblue">Retour vers [$nompage]</font></a>
</head>
</html>" >> $rep/index.html
fi
done
fi
echo "Quel est le nom du propriétaire de la page? "
read proppage
#Affichage d'une citation avec le nom du propriétaire de la page
echo "<blockquote><i><font size=1 color="red">Page réalisé par $proppage</font></i></blockquote><center>" >> index.html
echo " "
echo " "
echo "Votre arborescence vient d'être réalisé avec succès... Merci!"
fi

Il y aussi un truc auquel j'ai du mal, c'est de pouvoir placer en argument un nom dossier, dans le quel se trouve tous les fichiers répertoriés, afin d'éxécuter le script et donc de créer l'index.html dans le dossier placer en argument. Ne savant pas le faire j'ai fait l'inverse, affichant une erreur à l'utilisateur s'il placer un argument après l'éxécution du script, en lui disant qu'il ne doit pas placer d'argument mais placer le script dans le dossier voulu et l'executer à partir de ce dossier.

Répondre à ludwig16@IDN
Tom's Guide > Forum > Programmation > Shell Script
Aller à :

Il y a 2381 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens