Ich möchte mein Array an den Benutzer ausgeben, damit sie sehen können, wie die Zuordnungen aussehen würden. Ich versuchte so mit dieser Aussage printf '%s\n' "${cluster_to_endpoint[@]}"
Ich versuche, es in meiner Nutzungsfunktion unten zu entleeren, aber ich bekomme nicht die Ausgabe, die ich erwarte.Bash - Wie alle Elemente in Array innerhalb der Verwendung dump
-Code in progress:
#!/bin/bash
set -e
usage() {
echo "Usage: $0 -o oldcluster -n newcluster"
printf '%s\n' "${cluster_to_endpoint[@]}"
}
while getopts ":o:n:" opt; do
case $opt in
o) old="$OPTARG";;
n) new="$OPTARG";;
*) usage
exit 1
;;
esac
done
# Mapping
declare -A cluster_to_endpoint=(
[c1]=foobar2-01.us-east-1.my.com
[c2]=foobar2-02.us-east-1.my.com
[c3]=foobar2-03.us-east-1.my.com
[c4]=foobar2-04.us-east-1.my.com)
# Echo info
echo "Source cluster:${cluster_to_endpoint[$old]}"
echo "Target cluster:${cluster_to_endpoint[$new]}"
Ausgang:
-bash-4.1$ ./tst.sh -h
Usage: ./tst.sh -o oldcluster -n newcluster
Erwartet:
Usage: ./tst.sh -o oldcluster -n newcluster
[c1]=foobar2-01.us-east-1.my.com
[c2]=foobar2-02.us-east-1.my.com
[c3]=foobar2-03.us-east-1.my.com
[c4]=foobar2-04.us-east-1.my.com
Sie hätten eine bessere Chance, die erwartete Ausgabe zu erhalten, wenn Sie das Array erstellen * bevor * Sie versuchen, es zu drucken. – rici