patou355 wrote:Bon, là je peux pas lutter 🙂

Par contre j'ai pas compris pk tu dis que la conversion en .flac est déjà faite...

et je vois pas non plus le lien entre TYPES_SUPPORTES et le 'find -type -f'
Je vais détailler le fonctionnement du script. Celui-ci va parcourir tous les fichiers, y compris ceux non multimédia. Mais seuls ceux dont l'extension est dans la variable TYPES_SUPPORTES seront effectivement convertis. Un fichier non multimédia sera ignoré (la commande « continue », si elle est exécutée, fait en sorte que les instructions situées après soient ignorée et fait passer la boucle au fichier suivant).
Par ailleurs, la commande ffmpeg dans le script va convertir ici n'importe quel fichier dont l'extension est déclarée dans TYPES_SUPPORTES en FLAC. Or les fichiers FLAC sont aussi dans TYPES_SUPPORTES. Dès lors pourquoi convertir du FLAC en FLAC ? Aussi pour ces fichiers la commande n'est pas exécutée, on passe directement à l'encodage en OGG.
Le but de ma réécriture était d'une part d'éviter la duplication de code (si tu devais modifier par exemple la commande ffmpeg, tu devrais sans ça la modifier autant de fois qu'elle apparaît), d'autre part de permettre la prise en compte de nouveaux fichiers multimédia sans peine ni copie de code (grâce à la variable TYPE_SUPPORTES).
C'est vrai que c'est beaucoup mieux pour celui qui écrit le code, et je vais sûrement adapter mon script à ta sauce 🙂
Par contre, cela veut dire que tous les fichiers sont stockés dans la variable, même si on en fait rien. Est-ce qu'on ne risque pas de faire exploser la taille de cette dernière ? Imaginons qu'il existe moult petits fichiers texte à côté par exemple. Ne risque-je pas d'alourdir mon programme ? Où sont stockées les variables (RAM, DD...) ?

Je reconnais que c'est tiré par les cheveux, parce que pour saturer 1 Gio de RAM avec une liste de fichier faut se lever tôt. Mais question de principe...
patou355 wrote: Par contre, cela veut dire que tous les fichiers sont stockés dans la variable, même si on en fait rien.
Quelle variable ? TYPES_SUPPORTES ? Son contenu n'est jamais modifié dans la boucle ; la commande suivante :
grep -q "$ext" <<<"$TYPES_SUPPORTES"
vérifie simplement si l'extension du fichier courant fait partie de celles définies dans la variable TYPES_SUPPORTES. Si tu préfères, une notation "développée" strictement équivalente serait :
echo "$TYPE_SUPPORTES" | grep -q "$ext"
L'opérateur "<<<" (avec 3 chevrons) permet d'envoyer le contenu d'une chaîne sur sur l'entrée standard de la commande qui le précède.
Ha oui non oublie ce que j'ai dit, erreur d'interprétation.

C'est vraiment différent d'un langage comme le C. Là j'aurais pas vu comment élaborer ce type de boucle sans test (if)...

En tout cas merci beaucoup 🙂