I've searched and searched on here for an answer, and I think the combination of being a noob at bash, not knowing the right way to do this, and not searching for the right keywords has meant I can't quite get over the last hurdle.
I'm writing a basic bash script to create config lines into a file based on the contents of a comma separated array variable. It works perfectly for single variables, but when I try and combine the two array variables it doesn't quite work. I've tried looping within the loop and that just creates the lines one after the other when I want it to loop with the other 5 lines it creates.
The two variables have the same number of iterations. Eg:
- arr1=SITENAME1,SITENAME2,SITENAME3
- arr2=12:ac:23:bf:12:ca,22:de:a2:bf:21:ac,01:e4:32:f0:12:c4
and I want to pass them together into the loop:
- SITENAME1 ($y) with 12:ac:23:bf:12:ca ($x)
- SITENAME2 ($y) with 22:de:a2:bf:21:ac ($x)
- SITENAME3 ($y) with 01:e4:32:f0:12:c4 ($x)
Here is the code extract:
arr1=$(echo $sites | tr "," "\n")
arr2=$(echo $mastermacs | tr "," "\n")
IFS="," read -a arr1 <<< "$sites"
IFS="," read -a arr2 <<< "$mastermacs"
for y in "${!arr1[@]}"; do
# for x in "${arr2[@]}"; do
n=$(($n+1))
echo "config flexconnect group ${arr1[y]} add"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload master ${arr1[y]}_AP01"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload enable"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload start primary"$'\r' >> Flex-cfg.txt
# done
done
It's this line in particular that I'm trying to iterate with 2 values (incidentally I've used it with just $y
and $x
as well, I've just been tinkering):
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
But as it stands it just puts the first one each time. Value Y is a name, and value X is a MAC Address.
I'm either very close or completely and utterly wrong. So could do with some kind help!