Voglio scrivere uno script per fare riferimento a più array da un altro array che contiene i nomi delle variabili di questi array.
Ecco il mio codice finora:
#!/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
Vorrei che l'output eseguisse la scansione di entrambi gli array (dall'esterno per il ciclo) e stampasse le rispettive stringhe nell'interno per il ciclo che chiama echo. Il mio output attuale mi sta solo mostrando:
array1
array2
Sarei grato per qualsiasi suggerimento in merito. Grazie!
${a[@]}
a ${!a}
fa quello che vuoi (credo).
${!a[@]}
fornisce una lunghezza dell'array a
.
${!a}
mi sta solo dando i primi elementi.
for b in "${array1[@]}" "${array2[@]}"; do ...; done
?