Remplir un tableau dans une boucle for

Résolu/Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - Modifié le 9 déc. 2017 à 08:03
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 15 déc. 2017 à 07:00
Bonjour, je débute en script bash et j'ai un souci pour remplir un array via une boucle for.
Voici mon script:

tablo=("A" "B" "C" "D" "E" "F" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z")
declare -A tablo2

for lettre in ${tablo[@]}
do
    tablo2[$lettre]=$lettre
done

echo 'Clé => '${!tablo2[@]}
echo 'Valeur => '${tablo2[@]}


Et la logiquement, je devrais avoir un array avec pour clé les 26 lettres de l'aphabet et pour valeur la meme chose que les clés.
Or ce que j'obtiens c'est un tableau avec 0 comme clé et Z comme valeur

Donc comment faire pour obtenir un tableau de ce type avec ma boucle:
Clé A = Valeur A
Clé B = Valeur B
Clé C = Valeur C
...

Merci et bonne journée

8 réponses

salut,

tel quel ton script fonctionne :
tablo2
a bien 26 indices de A à Z, ayant comme valeur A...Z
#!/bin/bash

declare -A tablo2
tablo=( {A..Z} )
for lettre in "${tablo[@]}"; do tablo2["$lettre"]="$lettre"; done
for i in "${!tablo2[@]}"; do echo "clé $i => valeur ${tablo2["$i"]}"; done


PS: n'oublie pas les guillemets, sinon tu auras de mauvaises surprises.
0