-1
declare -a array[2]
for  (( i=0; i<3; i++ ))
do
read array[$i]
done

for  (( n=0; n<3; n++ ))
do
echo  -e "From Table[$n]: ${array[$n]}\n " ;
done

sqlplus owner/pass@db << ENDOFSQL
    @file.sql
exit;
ENDOFSQL;

我需要在 file.sql 脚本中使用 bash 数组 [] 变量。

4

1 回答 1

0

如果file.sql要从输入创建,则不需要数组。你可以在同一个for循环中读写

for (( i = 0; i < 3; i++ )); do
    read a
    echo "From Table[$i]: $a"
done >file.sql

这将创建file.sql,然后您可以将其传递给 sqlplus

sqlplus owner/pass@db @file.sql

您还应该能够完全跳过输入文件并将 for 循环的输出直接通过管道传输到 sqlplus

for (( i = 0; i < 3; i++ )); do
    read a
    echo "From Table[$i]: $a"
done | sqlplus owner/pass@db
于 2013-02-28T14:06:02.573 回答