December 29, 2011

Need help using multiple variables within a line

I have made a script which works fine. But when i include the for loop in my script in give errors. I know that this is an syntax error

./test.sh: line 17: ${test"$i"[0]} ${test"$i"[1]} ${test"$i"[2]} ${test"$i"[3]} ${test"$i"[4]}: bad substitution
Test1 Passed
./test.sh: line 17: ${test"$i"[0]} ${test"$i"[1]} ${test"$i"[2]} ${test"$i"[3]} ${test"$i"[4]}: bad substitution
Test1 Failed
./test.sh: line 17: ${test"$i"[0]} ${test"$i"[1]} ${test"$i"[2]} ${test"$i"[3]} ${test"$i"[4]}: bad substitution

Here is my script

#!/bin/bash

pre_result1=( 12.00 1.28 )
pre_result2=( 2.92 12.00 )
pre_result3=( 2.92 12.00 )
#pre_result3=12

test1=( s 3 3 4 5 )
test2=( p 2 5 7 )
test3=( r 2 5 7 )

for (( i=1; i<=3; i++ ))

do

./testelectronic <<< "${test"$i"[0]} ${test"$i"[1]} ${test"$i"[2]} ${test"$i"[3]} ${test"$i"[4]}" > test"$i".txt
#extracting required lines from file
result1=`head -n 6 test"$i".txt | tail -n 1`
result2=`tail -1 test"$i".txt`
#printing for testing purpose
#echo $result1
#echo $result2

#extracting required values from lines
#compare=result1 | awk '{print $NF}'
echo $result1 | awk '{print $NF}' > result1.txt
echo $result2 | awk '{print $NF}' > result2.txt

val1=0
val2=0
FILENAME="result1.txt"
while read line
do
val1=$line
done < $FILENAME

FILENAME="result2.txt"
while read line
do
val2=$line
done < $FILENAME

#printing for testing purpose
#echo $val1
#echo $val2

if [ "$val1" == "${pre_result1[0]}" ] && [ "$val2" == "${pre_result1[1]}" ]
then
echo "Test1 Passed"

else
echo "Test1 Failed"

fi

done

I Google for this and found an example and i use like this

./testelectronic <<< "${test[$i][0]} ${test[$i][1]} ${test[$i][2]} ${test[$i][3]} ${test[$i][4]}" > test$i.txt

It remove the error but now this line do not take parameters correctly.

Kindly help

Thanks in advance

usmangt