使用索引循环使用常规数组。对于我的应用程序,我需要使用一个自变量来从数组中提取值。
#!/bin/bash
# Author : Ankit
echo "Please enter the number of files (max index number of file): "
read iv
fname="t3p_"
echo "You entered: $iv, $fname" ;
#---------------------------------------------------------------------------------------------
#Reference values
refxa=(2.0 3.0 4.0)
refza=(1.0 6.0 7.0)
#---------------------------------------------------------------------------------------------
rm result.txt
#echo $iv,$fname
i=1
while [ $i -lt $(($iv+1)) ] ; do
xxn=5
zzn=19
refxn=$(echo $refxa | awk '{print $i}')
refzn=$(echo $refza | awk '{print $i}')
delta_x=`echo $xxn - $refxn | bc -l`
delta_z=`echo $zzn - $refzn | bc -l`
printf "%f\t%f\t%f\t%f\t%f\n" "$i" "$xxn" "$delta_x" "$zzn" "$delta_z" >> result.txt
i=$[$i+1]
done
echo -e "------------------------------------------------------------------------------------"
cat result.txt
我的问题:
xxn
)中减去值$i
,这是循环的索引。如何使用变量$i
访问数组元素。 (使用数组索引不是一个选项,因为在我的脚本中,$ i与其他几个参数相关,并且此处未显示该代码。)我尝试了${refxa[i]}
这不起作用。
预期输出(第3和第5列为xxn-refxn[i]
和zzn-refzn[i]
:
You entered: 3, t3p_
------------------------------------------------------------------------------------
1.000000 5.000000 3.000000 19.000000 18.000000
2.000000 5.000000 2.000000 19.000000 13.000000
3.000000 5.000000 1.000000 19.000000 12.000000