I have an array containing names of categories
categories=( categoryA categoryB categoryC )
Each category contains multiple products, which is stored in different arrays.
categoryA=( productA1 productA2 productA3 )
categoryB=( productB1 productB2 productB3 )
categoryC=( productC1 productC2 productC3 )
I want to loop over all products, so I wrote this code:
categories=( categoryA categoryB categoryC )
categoryA=( productA1 productA2 productA3 )
categoryB=( productB1 productB2 productB3 )
categoryC=( productC1 productC2 productC3 )
for category_name in "${categories[@]}"
do
echo $category_name
category=${!category_name}
for product in "${category[@]}"
do
echo -e '\t' $product
done
echo -e '\n'
done
I expected the output to be:
CategoryA
ProductA1
ProductA2
ProductA3
CategoryB
ProductB1
ProductB2
ProductB3
CategoryC
ProductC1
ProductC2
ProductC3
but unfortunately, the output is
CategoryA
ProductA1
CategoryB
ProductB1
CategoryC
ProductC1
How to fix this ?