Je souhaite stocker des paires valeur/clé pour stocker les adresses de personnes.Le dictionnaire de valeur-clé dans bash 4 pense à tort qu'il a une clé
Le code suivant construit un bash 4 tableau, met une valeur clé, puis tente d'obtenir la valeur d'une clé (non existante):
#!/bin/bash
declare -A addresses
addresses["john doe"]="Cows street 67"
containsElement() {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
NAME="ian nothere"
containsElement "${NAME}" "${addresses[@]}"
if [[ $? -eq 1 ]]; then
echo "Address is known: "
echo ${addresses[${NAME}]}
else
echo "Address unknown"
fi
Malheureusement, il retourne:
$ ./run.sh
Address is known:
$
Qu'est-ce que je fais mal?
err vous revenez 1 lorsque l'adresse est pas connu. semble OK pour moi. Cela devrait être 'if [[$? -eq 0]] 'droite? –
Btw .: array 'addresses' est global, pas besoin de passer à votre fonction. – Cyrus
En outre, vous vérifiez les valeurs, pas les clés. – anishsane