I have an array called \"loop\".
For each element in \"loop\" I want to create an array whose name contains the text of the current element.
I then want to l
It ain't pretty, but it's a start:
#!/bin/bash
loop=(
first
second
third
)
for word in "${loop[@]}"
do
var=${word}_holder
eval "declare -a ${var}"
eval "${var}=( Hello World )"
eval 'nEntries=${#'${var}'[@]}'
echo ${var}
for (( ii=0; ii<$nEntries; ii++ )); do
cmd='echo ${'${var}'['$ii']}'
eval ${cmd}
done
done
for word in "${loop[@]}";
do
name="${word}_holder";
declare -a "$name";
declare -n arr="$name";
echo $name;
arr=(hello world);
arr_ref="$name[@]";
for w in "${!arr_ref}";
do
echo $w;
done;
done;
first_holder
hello
world
second_holder
hello
world
third_holder
hello
world
Of course there is no point of doing all this if you are not going to refer to the dynamically generated arrays (first_holder, etc) ever.