Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/09/2021, à 17:17

lebossejames

[résolu] bash creation d'un array avec une key et value

Bonjour,

Je souhaiterais créér un array[key]=value  mais je n'arrive pas, la key est une valeur dynamique de même pour la valeur.

declare -a MyArray
           
            for (( indice=0; indice<5; indice++ ));
                do 
            
                    name="monchateau$indice"
                    key="key$indice"
                    MyArray[key]=name
                    
                done

Merci d'avance.

Dernière modification par lebossejames (Le 06/09/2021, à 18:05)

Hors ligne

#2 Le 05/09/2021, à 18:28

pingouinux

Re : [résolu] bash creation d'un array avec une key et value

Bonjour,

declare -A MyArray
.....
                    MyArray[$key]=$name
.....

Hors ligne

#3 Le 05/09/2021, à 18:29

erresse

Re : [résolu] bash creation d'un array avec une key et value

Salut.
Tu as essayé avec

                    MyArray[$key]=$name

($key et $name pour citer les variables key et name)
Edit: Zut, encore grillé ! tongue

Dernière modification par erresse (Le 05/09/2021, à 18:30)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#4 Le 05/09/2021, à 19:00

Watael

Re : [résolu] bash creation d'un array avec une key et value

je  pressent une usine à gaz.
pourquoi indiquer un "mot-clé" dans les indices du tableau ?
pourquoi indiquer l'indice "des deux côtés" ?

il faudrait nous donner une vision plus globale de ce que veux faire avec ce tableau.

Dernière modification par Watael (Le 05/09/2021, à 19:01)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 06/09/2021, à 08:01

lebossejames

Re : [résolu] bash creation d'un array avec une key et value

erresse a écrit :

Salut.
Tu as essayé avec

                    MyArray[$key]=$name

($key et $name pour citer les variables key et name)
Edit: Zut, encore grillé ! tongue


ça ne marche pas, j'ai toujours qu'un seul élément dans mon Arrray

Hors ligne

#6 Le 06/09/2021, à 08:11

lebossejames

Re : [résolu] bash creation d'un array avec une key et value

Watael a écrit :

je  pressent une usine à gaz.
pourquoi indiquer un "mot-clé" dans les indices du tableau ?
pourquoi indiquer l'indice "des deux côtés" ?

il faudrait nous donner une vision plus globale de ce que veux faire avec ce tableau.

Je ne comprends pas la question d'indices des deux côtés.

La vision globale est celle-là: Je parse un fichier json sous la forme :

{"journee":[ "lundi","mardi","mercredi","jeudi"],"lieux":[{"name":"Brest","activate":true,"number":0},{"name":"Caen","activate":true,"number":0},{"name":"Saint-Malo","activate":true,"number":0}

Cette chaine se trouve à la position 1

declare -a MyArray
number=$(echo $json_value_users | jq '.[1].lieux | length')
            echo "$number"
            for (( indice_lieux=0; indice_lieux<$number; indice_lieux++ ));
                do 
            
                    name=$(echo "$(echo $json_value_users | jq '.[1].lieux['${indice_lieux}'].name')" | tr -d '"')
                    activate=$(echo "$(echo $json_value_users | jq '.[1].lieux['${indice_lieux}'].activate')" | tr -d '"')
                    MyArray[$name]=$activate

                done

Hors ligne

#7 Le 06/09/2021, à 08:35

Watael

Re : [résolu] bash creation d'un array avec une key et value

Je ne comprends pas la question d'indices des deux côtés.

c'est ta manière d'exposer ton raisonnement qui m'a fait dire ça comme ça.
en voyant ton code, c'est plus clair : il faut un tableau associatif, déclaré avec -A.

par contre,
1- as-tu testé ta commande jq ?
2- le JSON doit pouvoir être traité complètement avec jq, sans shell.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 06/09/2021, à 09:02

lebossejames

Re : [résolu] bash creation d'un array avec une key et value

Watael a écrit :

Je ne comprends pas la question d'indices des deux côtés.

c'est ta manière d'exposer ton raisonnement qui m'a fait dire ça comme ça.
en voyant ton code, c'est plus clair : il faut un tableau associatif, déclaré avec -A.

par contre,
1- as-tu testé ta commande jq ?
2- le JSON doit pouvoir être traité complètement avec jq, sans shell.


J'ai des traitements à faire dans mon script shell d'où la sauvegarde dans un array.

Hors ligne

#9 Le 06/09/2021, à 12:19

Watael

Re : [résolu] bash creation d'un array avec une key et value

jq devrait pouvoir les faire.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#10 Le 06/09/2021, à 18:04

lebossejames

Re : [résolu] bash creation d'un array avec une key et value

Finalement j'ai réussi.

Il fallait déclarer l'array avec un -A et non -a.

Merci.

Dernière modification par lebossejames (Le 06/09/2021, à 18:05)

Hors ligne

#11 Le 06/09/2021, à 18:18

Hizoka

Re : [résolu] bash creation d'un array avec une key et value

Il fallait déclarer l'array avec un -A et non -a.

pingouinux a écrit :

Bonjour,

declare -A MyArray
.....
                    MyArray[$key]=$name
.....
Watael a écrit :

en voyant ton code, c'est plus clair : il faut un tableau associatif, déclaré avec -A.

...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne