Ich möchte ein Skript schreiben, um auf mehrere Arrays aus einem anderen Array zu verweisen, das die Variablennamen dieses Arrays enthält.
Hier ist mein Code bisher:
#!/bin/bash
array1=('array1string1' 'array1string2')
array2=('array2string1' 'array2string2')
array_names=('array1' 'array2')
for a in ${array_names[@]}
do
for b in ${a[@]}
do
echo $b
done
done
Ich möchte, dass die Ausgabe beide Arrays (von der äußeren for-Schleife) durchsucht und die entsprechenden Zeichenfolgen in der inneren for-Schleife druckt, die Echo aufruft. Meine aktuelle Ausgabe zeigt mir nur:
array1
array2
Ich wäre dankbar für Hinweise dazu. Vielen Dank!
${a[@]}
zu ${!a}
das, was Sie wollen (glaube ich).
${!a[@]}
gibt eine Länge des Arrays an a
.
${!a}
gibt mir nur die ersten Elemente.
for b in "${array1[@]}" "${array2[@]}"; do ...; done
?