Arrays 在linux中使用循环遍历数组以在sqlplus中执行查询

Arrays 在linux中使用循环遍历数组以在sqlplus中执行查询,arrays,shell,sqlplus,Arrays,Shell,Sqlplus,我有以下代码的shell脚本: #! /bin/bash MODEL=$1 declare -a arr=("porsche" "lamborgini" "tesla") for i in ${arr[@]} do sqlplus -s un/pass <<! set verify off INSERT INTO tbl1 (par1, par2, par3, datetime_parm) VALUES('$MODEL', '${arr[i]}', (select count(s

我有以下代码的shell脚本:

#! /bin/bash

MODEL=$1
declare -a arr=("porsche" "lamborgini" "tesla")

for i in ${arr[@]}
do
sqlplus -s un/pass <<!
set verify off
INSERT INTO tbl1 (par1, par2, par3, datetime_parm)
VALUES('$MODEL', '${arr[i]}', (select count(s) from table i), SYSTIMESTAMP);
COMMIT;
exit;
!
done
#/bin/bash
型号=$1
声明-a arr=(“保时捷”“兰博基尼”“特斯拉”)
对于${arr[@]}中的i
做
sqlplus-s un/pass
出于某种原因,它正在覆盖它从数组中获得的上一个值,而我最后只在表中填充了“tesla”

有人知道我做错了什么吗?

我知道了

#! /bin/bash

MODEL=$1
declare -a arr=("porsche" "lamborgini" "tesla")

for i in ${arr[@]}
do
sqlplus -s un/pass <<!
set verify off
INSERT INTO tbl1 (par1, par2, par3, datetime_parm)
VALUES('$MODEL', '$i', (select count(s) from table i), SYSTIMESTAMP);
COMMIT;
exit;
!
done
#/bin/bash
型号=$1
声明-a arr=(“保时捷”“兰博基尼”“特斯拉”)
对于${arr[@]}中的i
做

sqlplus-s un/pass我所要做的就是传递变量$I