Merci à tous , mais ma question est comment charger une liste dans un script, donc dans un tableau.
En gros:
comment utiliser une liste de fichiers comme « *.jpg » dans un script
monscript.sh *.jpg
(Ensuite la fonction de renommage sera une autre question… où mv sera effectivement peut-être la solution)
Dans mon (mauvais) exemple, j’espérais charger « $1 » dans un tableau, mais « $1 » n’est qu’un seul élément.
Cette remarque me fait penser qu’il existe la variable $@, qui récupère tous les paramètres, ici tous les noms de fichier!
[EDIT]
Pb NON résolu!
La liste des fichiers obtenue par
Tableau="$@" (ou $*) ne contient qu’un seul élément qui, cette fois est bien la liste complète, mais seulement comme 1er élément du tableau:
#!/bin/bash --
# Remplir un tableau passé au script
1er essai
declare -a fichiers
for f in ${!fichiers[@]} ;
do
echo "Rang=$f - fichier=${fichiers[$f]}"
done
# N'affiche rien
2e essai
declare -a TableauDeFichiers
TableauDeFichiers="($*)"
for i in "${!TableauDeFichiers[*]}"
do
echo "Rang=$i - Nom=${TableauDeFichiers[$i]} "
done
# Affiche la liste dans une seule variable scalaire, avec les parenthèses et
# l'entête unique « Rang=0 »
De ces 2 exemples, les variables $* et $@ donnent le même résultat.