Désolé, je n’ai pas de tuto à te fournir car j’ai tout appris en lisant le “man”.
Après, j’ai le sentiment que tu utilises zsh et non bash. Qu’importe, normalement zsh est compatible bash.
Note : il n’y a rien de complexe dans ce que je t’ai proposé. Seuls les tableaux et ce que l’on appelle le développement de nom sont utilisés.
Le développement de nom, c’est (pour schématiser) l’utilisation de jokers pour référencer un ensemble de noms de fichiers (ici ~/test/.jpg). C’est le pattern. Au moment où bash interprète la ligne du script, il remplace le pattern (s’il n’est pas protégé par des guillemets ou quote) par l’ensemble des fichiers correspondant. C’est ainsi qu’est constitué le tableau : fichiers=( ~/test/.jpg )
~/test/*.jpg est remplacé par tous les fichiers correspondants.
un tableau se crée (entre autre) en délimitant tous les éléments par des parenthèses ouvrante et fermante. Il est également possible de les ajouter un à un.
Puis, on accède aux éléments du tableau avec la notation ${nomtableau[indiceElement]}
enfin, pour connaitre le nombre d’éléments d’un tableau, la syntaxe est la suivante : ${#nomtableau[@]}
la notation $((…)) permet d’effectuer des calculs.
la notation ${variable//pattern} (${fichiers[0]//[^0-9]}) permet de remplacer tout ce qui correspond à pattern dans variable par “rien”.
ici : variable = fichiers[0] c’est donc le premier élément du tableau (les indices commence à 0)
pattern = [^0-9] c’est à dire tout ce qui n’est pas “chiffre” (le caractère ^(ou !) permet d’indiquer l’inverse)
Voilà pour faire au plus simple car il y a des particularités à ces instructions.