Lister repertoire dans un tableau

Fermé
aurélien - 29 juin 2005 à 16:27
 francis - 29 juin 2005 à 17:08
Salut, j'essaye (mais j'arrive pas :-( ) de faire un script qui liste le contenu d'un repertoire (ne contenant que des fichiers, pas d'autres sous repertoires) mais en me stockant chaque fichier dans un tableau, ou plutot...chaque fichier dans une case differente d'un meme tableau...
merci pour votre aide !!

2 réponses

bash permet aussi d'avoir des variables tableaux. Celles-ci sont des tableaux associatifs. La clé pour y accéder peut être n'importe quelle chaîne de caractères. Par défaut ce seront des numériques commençant à 0. Les tableaux sont aussi créés automatiquement. Pour initialiser un tableau en une seule opération :
> tableau1=(valeur0 valeur1 valeur2)

On accède ensuite à un élément par ${tableau[clé]} où clé sera ici un nombre entre 0 et 2.
> echo ${tableau1[2]}
valeur2

On peut par cette même notation affecter une valeur à l'élément du tableau. Si on affecte la valeur à un élément qui n'existe pas encore, il sera créé. Il ne doit pas nécessairement être à la suite du dernier élément. On peut créer celui d'indice 5 sans que les 3 et 4 n'existent.
> ${tableau1[5]}=valeur5

Pour créer un tableau en n'utilisant pas les indices par défaut, on utilisera la syntaxe suivante :
> tableau2=([clé0]=valeur0 [clé1]=valeur1 [clé2]=valeur2)

Où les clés peuvent être n'importe quelles chaînes de caractères. A un tableau créé avec les index numériques par défaut, on peut très bien ajouter un élément dont la clé est une chaîne de caractères.
0
index=0
for i in * ; do tableau[$index]=$i ; index =index + 1 ; done


à adapter selon tes besoins et le shell que tu utilises
0