Bonjour,

J'ai besoin d'aide pour terminé mon script bash, il est quasi finis, il y a juste un bug au début du code et je ne sais pas pourquoi.

L'idée est de pouvoir entrer:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
galerie.sh none none uneTailleEnPixel
C'est censé paramétrer le nom du fichier de sortis automatiquement en galerie.html, la taille de la hauteur des images à miniaturisé à 200 et la taille de la largeur tel qu'on l'a passé en paramètre, sauf que sa me configure la largeur à 200 aussi.

Je post le code complet avec des commentaires.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
 
#!/bin/bash
 
if [ -z $2 ] && [ -z $3 ]	#Si les paramètres 2 et 3 n'existent pas, on les initialise utomatiquement
then
	hauteur=200
	largeur=200
fi
 
if [ -n $2 ]		#Si le paramètre 2 existe
then
	if [ "$2" = "none" ]		#Si $2 vaut none
	then
		if ! let $3		#Si $3 n'est pas un entier on le signal et on quitte
		then
			echo $3 non invalide, $3 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
			exit 1
		else		#sinon on initialise largeur
			largeur=$3
		fi
		hauteur=200		#hauteur est automatiquement configuré
	else		
		if ! let $2		#Sinon si $2 n'est pas un entier on le signal et on quitte
		then
			echo $2 nom invalide, $2 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
			exit 2
		else		#sinon on initialise hauteur
			hauteur=$2
		fi
 
		if [ -z $3 ]		#Si $3 n'existe pas on l'initialise
		then
			largeur=200
		fi
 
		if ! let $3		#Si $3 n'est pas un entier on le signal et on quitte
		then
			echo $3 non invalide, $3 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
			exit 3
		else		#Sinon on initialise largeur
			largeur=$3
		fi
	fi		
fi
 
if [ -z $1 ]	|| [ $1 = "none" ] #si il n'y as pas de paramètre 1 ou que paramètre 1 vaut none
then
	nom=galerie.html
elif [ $1 = "man" ]
then
	less manuelGalerie
	exit 4
else	
	nom=$1
	if [ -e $nom ]	#Si il existe alors on test si le paramètre n'existe pas deja dans le dossier courant
	then
		while [ -z $choix ] || [ $choix != 'y' ]		#tant que l'utilisateur n'a pas entrer 'y' on ne sort pas de la boucle
		do
			echo Le fichier $nom existe déjà, voulez vous vraiment continuer, si oui le fichier $nom sera ecraser \(y\/n\)
			read -p '> ' choix
 
			if [ $choix != "y" ] && [ $choix != "n" ]		#Si l'utilisateur a entré autre chose que 'y' ou 'n'  alors on demande de recommencer sa saisie
			then
				echo Veuillez entrer une lettre valide, "'"y"'" pour valider "'"n"'" pour refuser
			elif [ $choix = "n" ]		#Si l'utilisateur entre 'n' on stop le programme
			then
				echo Programme abandonné
				exit 5
			fi
		done
	fi	
fi
 
touch $nom		#On créer le fichier de sortis
 
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Galerie d image</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
   </head>
   <body>
	<p>' > $nom		#On redirige le code minimal html dans le fichier de sortis
 
while [ -z $chemin ] || [ ! -e $chemin ]		#tant qu'on a rien entré ou tant qu'on as pas entré un chemin valide
do
	echo "Veuillez entrer le chemin absolu du dossier contenant les images à réduire"
	read -p '> ' chemin
 
	if [ ! -e $chemin ]		#si le chemin est invalide on le signale
	then
		echo "Le chemin entrer est invalide: $chemin aucun dossier ou fichier de ce type"
	fi
done
 
if [ -e miniatures ]		#Si le dossier qui va recevoir les imagettes existe alors on le créer	
then
	while [ -z $choix2 ] || [ $choix2 != 'y' ]
	do
		echo Le dossier miniatures est déjà présents, voulez-vous vraiment continuer, si oui le dossier sera ecrasé \(y\/n\)
		read -p '> ' choix2
 
		if [ $choix2 != "y" ] && [ $choix2 != "n" ]
		then
			echo Veuillez entrer une lettre valide, "'"y"'" pour valider "'"n"'" pour refuser
		elif [ $choix2 = "n" ]
		then
			echo Programme abandonné
			exit 5
		elif [ $choix2 = "y" ]
		then
			rm -r miniatures
			mkdir $chemin/miniatures
		fi
	done
else
	mkdir $chemin/miniatures
fi
 
 
for images in `ls $chemin *.jpg *.png *.gif *.jpeg 2>/dev/null`	#tant qu'on a pas miniaturisé toutes les images dont on gère les extensions, on continue
do
	convert $chemin/$images -thumbnail ''$hauteur'x'$largeur'>' $chemin/miniatures/$images		#On miniaturise les images dans le dossier miniatures créer avant
done
 
mv $chemin/miniatures ./		#On deplace miniatures dans le dossier d'origine
 
for images in `ls miniatures *.jpg *.png *.gif *.jpeg 2>/dev/null`		#Tant qu'on a pas redirigé toutes les images vers le dossier de sortis on continue
do
	echo '<a href=" '$chemin/$images' "><img src="miniatures/'$images' " alt=" " /></a>' >> $nom
done
 
echo '</p>
   </body>
</html>' >> $nom #On insère la fin du code html
Merci de votre aide