# Finalisation script BASH besoin d'un peut d'aide

**URL:** <https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924 "2016-02-21T03:23:01Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/1 "2016-02-21T03:23:01Z")

</div>

Bonsoir,

J’ai un script qui ce termine de cette facon :

`cd $REPERTOIRE_SOURCE
for I in *
do echo "Redimensionnement de : "$VERT" $I""$NORMAL"
convert -filter Cubic -resize $imgsize $I $I
done 
sleep 2
echo "changement des noms de fichier en cour"
for i in *
do mv $i `echo $i | tr [:upper:] [:lower:]`; done`

1. Mon problème est que le passage de MAJ vers MIN ce fait sur la totallité du nom de fichier, je voudrait que cela ne se fasse que sur l’extension . est-ce possible ?
2. Je voudrai renommer le fichier de sortie avec la date du jour (incrémentant chaques photos d’un chiffre ex : 13\_09\_2011\_1 ou A-B-C etc…) du traitement, en fin de script, sachant que j’ai cette variable dans mon script :

```auto

```

1. enfin que tout les fichiers traités, soient transfèrés dans un dossier nomé à la date du jour (le même que celui des fichiers traités mais sans l’incrémentation…)

Ca bouchonne un peut dans ma tête et je vois pas comment procéder, quelqu’un aurait l’amabilité de bien vouloir me dire comment procéder ?

Merci beaucoup.

---

<div class="post-metadata">

**Author:** ![yap22](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/9e8a1a/32.png) [@yap22](https://www.debian-fr.org/u/yap22)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/2 "2016-02-21T03:23:04Z")

</div>

Bonjour,

2 petites fonctions qui peuvent t’aider.  
La première permet de renommer des fichiers avec une racine suivie d’un numéro :

```auto
#=========================================
#echo "Renommage des fichiers, nombre de fichiers a traiter : $#"
num=0
(while [$# -gt 0]; do
  type=`echo $1 | cut -f2 -d"."`
  let "compteur += 1"
  num=$(($num+1))
  if [$num -gt 0] && [$num -lt 10]; then # pour les paramètres 1 à 9
    numero=00$num # rajouter 2 digit => 001, 002, 003,..., 009
  fi
  if [$num -gt 9] && [$num -lt 100]; then # pour les paramètres 10 à 99
    numero=0$num # rajouter 1 digit => 010, 011, 012,..., 099
  fi
  if [$num -gt 100] ; then # pour les paramètres supérieur à 100
    numero=$num # ne pas rajouter de digit => 100, 101, 102,...
  fi

  #echo "Renomage de $1 en $NouvNom-$numero.$type"
  mv $1 $NouvNom-$numero.$type
  let "progress = compteur*100/nbfiles"
  echo $progress
  shift
done
) | zenity --progress --auto-close --title="$title" --text="$msg_renomm" --percentage=0
```

La deuxieme est utilisée pour l’import de mes photos en les classant dans un dossier en fonction de la date de la photo

```auto
function fct_lire_date_exif ()
{ # Lecture de la date de creation de la photo
  #DatePhoto=`jhead $1 | grep Date | awk '{print $3}' | sed "s/:/ /g" `
  DatePhoto=`exiv2 $1 | grep timestamp | awk '{print $4}' | sed "s/:/ /g" `
  if [["$DatePhoto" == ""]]
  then
    echo -e "-I-> Il n'y a pas de date de prise de vue dans $1, utilisation de la date du fichier."
    echo -e "-D-> Creation des donnees Exif minimale et initalisation de la date exif a la date du fichier."
    jhead -mkexif -dsft $1
  fi
  #Repertoire ou doivent être enregistrees les photos
  Annee=`echo $DatePhoto | awk '{print $1}'`
  Mois=`echo $DatePhoto | awk '{print $2}'`
  Jour=`echo $DatePhoto | awk '{print $3}'`
  RepDest=`echo "$RepImages/$Annee/$Annee-$Mois-$Jour"`
  if [[! -d $RepDest]]
  then
    echo -e "\n-I-> Creation du repertoire $RepDest."
    mkdir -p $RepDest
  fi
  #echo "\n-I-> Copie et renommage de $1 "
  echo -e " .\c"
  cp $1 $RepDest/$1
  exiftran -ai $RepDest/$1 # rotation de la photo dans le bon sens
  exiv2 mv $RepDest/$1
}
```

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/3 "2016-02-21T03:23:06Z")

</div>

salut

pourquoi deux boucles for pour traiter les mêmes fichiers ?

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/4 "2016-02-21T03:23:06Z")

</div>

Bonjour,  
je n’arrive pas à implémenter tes scripts dans le miens ,je ne sais pas ou cela coince…une fenêtre s’ouvre/ferme trop vite…

Merci du CdM.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/5 "2016-02-21T03:23:06Z")

</div>

Voila qui devrait faire l’affaire à la place du code que tu as donné au premier message :

`cd "$REPERTOIRE_SOURCE"
date="$(date +%d_%m_%Y)"
mkdir -p "$date"
i=1
for I in * ; do
  echo "Redimensionnement de : $VERT $I $NORMAL"
  ext="$(echo ${I##*.} | tr [:upper:] [:lower:])"
  out="$date/${date}_$i.$ext"
  while [-f "$out"]; do
    ((++$i))
    out="$date/${date}_$i.$ext"
  done
  convert -filter Cubic -resize $imgsize $I "$out"
  ((++$i))
done`

C’est dommage d’avoir à utiliser tr, mais il me semble qu’il n’existe pas d’autres moyens.  
Juste pour le fun zsh permet de ne pas utiliser tr ainsi :

```auto

```

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/6 "2016-02-21T03:23:08Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»]  
C’est dommage d’avoir à utiliser tr, mais il me semble qu’il n’existe pas d’autres moyens.[/quote]  
Si bash \>=4 :

```auto
$ foo="un petit texte"
$ echo ${foo^}
Un petit texte
$ echo ${foo^^}
UN PETIT TEXTE
$ echo ${foo^^t}
un peTiT TexTe
$ foo="DES MAJUSCULES"
$ echo ${foo,,}
des majuscules
```

😉

> [@yap22](#):
>
> ```auto
> if [$num -gt 0] && [$num -lt 10]; then # pour les paramètres 1 à 9
> numero=00$num # rajouter 2 digit => 001, 002, 003,..., 009
> fi
> if [$num -gt 9] && [$num -lt 100]; then # pour les paramètres 10 à 99
> numero=0$num # rajouter 1 digit => 010, 011, 012,..., 099
> fi
> if [$num -gt 100] ; then # pour les paramètres supérieur à 100
> numero=$num # ne pas rajouter de digit => 100, 101, 102,...
> fi
> ```

```auto
for i in {0..150}
do
  printf "%03d\n" $i
done
```

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/7 "2016-02-21T03:23:11Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»]Voila qui devrait faire l’affaire à la place du code que tu as donné au premier message :

`cd "$REPERTOIRE_SOURCE"
date="$(date +%d_%m_%Y)"
mkdir -p "$date"
i=1
for I in * ; do
  echo "Redimensionnement de : $VERT $I $NORMAL"
  ext="$(echo ${I##*.} | tr [:upper:] [:lower:])"
  out="$date/${date}_$i.$ext"
  while [-f "$out"]; do
    ((++$i))
    out="$date/${date}_$i.$ext"
  done
  convert -filter Cubic -resize $imgsize $I "$out"
  ((++$i))
done`

[/quote]

![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere") ,desolé, je tourne en rond, il démarre même pas , avec ta modif ! le MKDIR dit qu’il à peux créer le rep car il existe pas … ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit") (c’est sûr puis ce que on veut qu’il le créer…) et quand je mmodifie en faisant :

```auto
mkdir -p "/mon_rep/test/$date"
```

il s’arrête.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/8 "2016-02-21T03:23:13Z")

</div>

[quote=“Totor”][quote=“MisterFreez”]  
C’est dommage d’avoir à utiliser tr, mais il me semble qu’il n’existe pas d’autres moyens.[/quote]  
Si bash \>=4 :

```auto
$ foo="un petit texte"
$ echo ${foo^}
Un petit texte
$ echo ${foo^^}
UN PETIT TEXTE
$ echo ${foo^^t}
un peTiT TexTe
$ foo="DES MAJUSCULES"
$ echo ${foo,,}
des majuscules
```

😉 [/quote]  
Nickel même si je trouve que c’est vraiment pas gérable comme syntaxe (vouloir utiliser des caractères autres que des lettres à tout les coups c’est moins lisible et plus limité).

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/9 "2016-02-21T03:23:13Z")

</div>

[quote=«&nbsp;chris38&nbsp;»] ![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere") ,desolé, je tourne en rond, il démarre même pas , avec ta modif ! le MKDIR dit qu’il à peux créer le rep car il existe pas … ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit") (c’est sûr puis ce que on veut qu’il le créer…) et quand je mmodifie en faisant :

```auto
mkdir -p "/mon_rep/test/$date"
```

il s’arrête.[/quote]  
Ajout un -x dans le shabang pour voir ce qu’il fait.

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/10 "2016-02-21T03:23:14Z")

</div>

Pareil, mais voici l’erreur :

`Redimensionnement de : SL183106.JPG 
convert: unable to open image `/_1.jpg': @ error/blob.c/OpenBlob/2489.
/home/chris/Documents/Scripts/Img/red_img8.sh: 76: ++1: not found
Redimensionnement de : SL183107.JPG 
convert: unable to open image `/_1.jpg': @ error/blob.c/OpenBlob/2489.
/home/chris/Documents/Scripts/Img/red_img8.sh: 76: ++1: not found
.......................
`

Et le sript :

`REPERTOIRE_SOURCE="/data/Photos_reduites"
rep_absent="!!!!!!!!!!!!!...Attention, Le repertoire source n'éxiste pas ...!!!!!!!!!!!!!"
rep_vide="Votre repertoire est vide, ajoutez vos fichiers et renouveler l'opération."
DATE=`date +%d%m%y`
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[1;31m"
JAUNE="\\033[1;33m"
echo "Teste de la présence du répertoire ou sont stocké les photos à réduire"
echo "Veuillez patienter quelques instant"
sleep 2
   if [! -e "$REPERTOIRE_SOURCE"]
      then
         echo "$ROUGE""$rep_absent" "$NORMAL"
         sleep 2
         echo "Veuillez créer le repertoire suivant : "$VERT""$REPERTOIRE_SOURCE"" "$NORMAL"
         echo "Fermeture du programme"
         sleep 2
      exit
   fi
echo -n "$BLEU""Nombre de fichiers à traiter" :  
      var=$(ls -a "$REPERTOIRE_SOURCE" | sed -e "/\.$/d" | wc -l)
         echo "$VERT""$var"
sleep 2
   if [$var -eq 0]
then
echo "$ROUGE""$rep_vide""$NORMAL"
echo "Fermeture du programme"
sleep 5
   exit
fi
title="Choose which sizes to scale to"
imgsize=`zenity --title "$title" --list --separator=" " --column="size" "160x120" "320x240" "640x480" "800x600" "1024x768" `
if ["$?" != 0] ; then
	exit
fi
#user must select a target size
imgsize=`echo $imgsize | sed 's/ max//g'`
if [! "$imgsize"]; then
	zenity --error --title="error" --text="select a target size"
	exit
fi
#transforme 640x480 en 640x640 for convert to respect proportions
himgsize=$imgsize
val1=`echo "$imgsize" | awk -F'x' '{ print $1 }'`
imgsize="${val1}x${val1}"
echo "$JAUNE""Les photos du répertoire courant : "$VERT" "$REPERTOIRE_SOURCE" "$NORMAL", vont être redimenssionnées aux valeurs suivantes :"$VERT" "$imgsize"""$NORMAL"
sleep 2
cd $REPERTOIRE_SOURCE
mkdir -p "$date"
i=1
for I in * ; do
  echo "Redimensionnement de : $VERT $I $NORMAL"
  ext="$(echo ${I##*.} | tr [:upper:] [:lower:])"
  out="$date/${date}_$i.$ext"
  while [-f "$out"]; do
    ((++$i))
    out="$date/${date}_$i.$ext"
  done
  convert -filter Cubic -resize $imgsize $I "$out"
  ((++$i))
done`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:23 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/11 "2016-02-21T03:23:15Z")

</div>

```auto
Tu as oublié cette ligne avant le mkdir.
```

Tu as oublié cette ligne avant le mkdir.

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:24 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/12 "2016-02-21T03:24:22Z")

</div>

[quote=“MisterFreez”]`date="$(date +%d_%m_%Y)"`  
Tu as oublié cette ligne avant le mkdir.[/quote]

Ca tourne en boucle :  
 ![](https://www.debian-fr.org/uploads/default/original/2X/0/0b92b55395fd948fdbe889f316c31b4dac3418db.png)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:24 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/13 "2016-02-21T03:24:23Z")

</div>

Remplace ((++$i)) par i=$((++$i)) d’une part.

D’autre par je ne comprends pas pourquoi il te parle d’un fichier 15\_9\_2011/15\_9\_2011\_1.15\_9\_2011.

Ajoute un -x au shebang et envoie-nous ce qu’il te sort.

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:25 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/14 "2016-02-21T03:25:09Z")

</div>

Le -x au shebang ne renvoie rien !!!

Sa tourne en boucle : ![](https://www.debian-fr.org/uploads/default/original/2X/5/5394e1105a0adb147da9bfde1333fe0b98233b46.png)

Alors il créer bien le rep avec la date, mais inside ,il n’y a que la première photo qui à été traité … il devrai y en avoir “8”

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:27 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/15 "2016-02-21T03:27:34Z")

</div>

Tu l’a remplacé que dans le while.

Pour le -x qui marche pas t’utilise quoi comme shell ? Parce que c’est censé fonctionner sous dash, bash et zsh (je pense que ça marche même sous tcsh).

Essaie peut être avec sh -x [script.sh](http://script.sh).

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 21, 2016, 3:29 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/16 "2016-02-21T03:29:20Z")

</div>

Idem pour la photo créer dans le rep… et j’utilise bash.  
Sa tourne en boucle comme les screens le montre :  
 ![](https://www.debian-fr.org/uploads/default/original/2X/d/da7805b816aeff7fbad574f2f214ff70ee3cc183.png)  
  
 ![](https://www.debian-fr.org/uploads/default/original/2X/d/d029785d7f75553e4d936060fd63086b60d55615.png)

Et le script en l’état :

[code]#!/bin/sh  
REPERTOIRE\_SOURCE="/data/Photos\_reduites"  
rep\_absent="!!!..Attention, Le repertoire source n’éxiste pas …!!!“  
rep\_vide=“Votre repertoire est vide, ajoutez vos fichiers et renouveler l’opération.“  
DATE=`date +%d%m%y`  
VERT=”\033[1;32m"  
NORMAL=”\033[0;39m"  
ROUGE=”\033[1;31m"  
ROSE="\033[1;35m"  
BLEU="\033[1;34m"  
BLANC="\033[0;02m"  
BLANCLAIR="\033[1;08m"  
JAUNE="\033[1;33m"  
CYAN="\033[1;36m"  
echo “Teste de la présence du répertoire ou sont stocké les photos à réduire"  
echo “Veuillez patienter quelques instant"  
sleep 2  
if [! -e “$REPERTOIRE\_SOURCE”]  
then  
echo “$ROUGE””$rep\_absent” “$NORMAL"  
sleep 2  
echo “Veuillez créer le repertoire suivant : “$VERT””$REPERTOIRE\_SOURCE”" “$NORMAL"  
echo “Fermeture du programme"  
sleep 2  
exit  
fi  
echo -n “$BLEU”“Nombre de fichiers à traiter” :  
var=$(ls -a “$REPERTOIRE\_SOURCE” | sed -e “/.$/d” | wc -l)  
echo “$VERT””$var"  
sleep 2  
if [$var -eq 0]  
then  
echo “$ROUGE””$rep\_vide""$NORMAL"  
echo "Fermeture du programme"  
sleep 5  
exit  
fi  
###################################  
title="Choisissez la résolution d’image souhaité’“  
imgsize=`zenity --title "$title" --list --separator=" " --column="size" "160x120" "320x240" "640x480" "800x600" "1024x768"`  
if [“$?” != 0] ; then  
exit  
fi  
#user have to select target size  
imgsize=`echo $imgsize | sed 's/ max//g'`  
if [! “$imgsize”]; then  
zenity --error --title=“error” --text=“select a target size"  
exit  
fi  
#To respect proportions  
himgsize=$imgsize  
val1=`echo "$imgsize" | awk -F'x' '{ print $1 }'`  
imgsize=”${val1}x${val1}”  
###################################

echo “$JAUNE”“Les photos du répertoire courant : “$VERT” “$REPERTOIRE\_SOURCE” “$NORMAL”, vont être redimenssionnées aux valeurs suivantes :”$VERT" “$imgsize”""$NORMAL"  
sleep 2  
cd “$REPERTOIRE\_SOURCE"  
date=”$(date +%d\_%m\_%Y)"  
mkdir -p "$date"  
i=1  
for I in \* ; do  
echo “Redimensionnement de : $VERT $I $NORMAL"  
ext=”$(echo ${I##\*.} | tr [:upper:] [:lower:])“  
out=”$date/${date}_$i.$ext"  
while [-f “$out”]; do  
i=$((++$i))  
out="$date/${date}_$i.$ext"  
done  
convert -filter Cubic -resize $imgsize $I "$out"  
i=$((++$i))  
done  
[/code]

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:29 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/17 "2016-02-21T03:29:21Z")

</div>

Tu utilise dash 🙂

J’ai compris. Tu peux tout résoudre en remplaçant ça :

`i=1
for I in * ; do
  echo "Redimensionnement de : $VERT $I $NORMAL"
  ext="$(echo ${I##*.} | tr [:upper:] [:lower:])"
  out="$date/${date}_$i.$ext"
  while [-f "$out"]; do
    i=$((++$i))
    out="$date/${date}_$i.$ext"
  done
  convert -filter Cubic -resize $imgsize $I "$out"
  i=$((++$i))
done`  
par ça

`i=1
for I in *.[jJ][pP][gG] *.[pP][nN][gG] *.[tT][iI][fF][fF] *.[bBmMpP] ; do
  echo "Redimensionnement de : $VERT $I $NORMAL"
  ext="$(echo ${I##*.} | tr [:upper:] [:lower:])"
  out="$date/${date}_$i.$ext"
  while [-f "$out"]; do
    i=$(expr $i + 1)
    out="$date/${date}_$i.$ext"
  done
  convert -filter Cubic -resize $imgsize $I "$out"
  i=$(expr $i + 1)
done`

J’aime pas l’arithmétique en shell, je dois toujours m’y reprendre plusieurs fois pour faire un truc qui marche.

Si Totor (ou quelqu’un d’autre) a mieux qu’il n’hésite pas à donner sa solution, je suis pas inspiré.  
Pareil pour le :`*.[jJ][pP][gG] *.[pP][nN][gG] *.[tT][iI][fF][fF] *.[bBmMpP]`

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 3:29 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/18 "2016-02-21T03:29:22Z")

</div>

Juste une petite suggestion pratique concernant le format des dates…

Dû à la façon dont les ordinateurs trient les fichiers et dossiers, il est souvent beaucoup plus facile de retrouver dans une grande liste un fichier/dossier nommé selon un format yyyy-mm-dd plutôt que dd-mm-yyyy. Surtout quand le postulat de départ est, comme souvent, quelque chose du genre « Hmm, ça devait être vers début mai je crois… » 😉

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:29 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/19 "2016-02-21T03:29:22Z")

</div>

Moi je ferrais carrément :

```auto

```

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 3:29 UTC](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924/20 "2016-02-21T03:29:24Z")

</div>

[quote=“MisterFreez”]Moi je ferrais carrément :

```auto

```

+1

Sinon, pour rechercher l’indice suivant à utiliser, tout dépend ce que l’on recherche à faire. Ta solution permet de combler les “blancs”.  
Si l’on veut trouver le plus grand disponible:

```auto

```

avantages :

- pas besoin de répéter l’action pour chaque fichier
- on conserve un ordre chronologique

pour l’histoire des noms de fichier :

`printf '%s\n' *.*|egrep -i '\.(jpg|png|tiff|bmp)$'|while read I
do
...
done`

PS : j’aime pas dash…

[Page suivante](https://www.debian-fr.org/t/finalisation-script-bash-besoin-dun-peut-daide/33924.md?page=2)
