I'm trying to loop through an array that contains other arrays and these arrays consist of strings with spaces. The problem is that I can't seem to preserve the spacing in the string. The string with spaces are either divided into multiple items if I change IFS to \n or all the elements of the array are seen as 1 item if I leave IFS unchanged here's some sample code:
#!/bin/sh
low1=("AA QQ" "BB LL")
low2=("CC" "DD")
low3=("EE" "FF")
high=(low1 low2 low3)
for high_item in ${high[@]}
do
eval arrayz=\${$high_item[@]}
#IFS=$'\n'
for item in $arrayz
do
echo $item
done
done
Output:
AA QQ BB LL CC DD EE FF
As you can see the elements "AA QQ" and "BB LL" have been split.
If I uncomment the line that sets IFS
to \n
I get the following:
AA QQ BB LL CC DD EE FF
Now "AA QQ" and "BB LL" are concatenated!
Is there anyway I can preserve these elements just as they original are...I need the output to look like that:
AA QQ BB LL CC DD EE FF