从shell并行调用SQL脚本

从shell并行调用SQL脚本,shell,sql-scripts,Shell,Sql Scripts,我使用下面的逻辑并行执行SQL PID\u LIST=“开始” 而[“$PID_列表”] 执行 $count =0 if [ "z$PID_LIST" = "zstart" ] then PID_LIST="" fi for PID in $PID_LIST do # echo "Checkpid $PID" if kill -0 $PID >/dev/null 2>&1 then PID_LIST_TMP="$PID_LIST_TMP $P

我使用下面的逻辑并行执行SQL

PID\u LIST=“开始”
而[“$PID_列表”]
执行

$count =0
if [ "z$PID_LIST" = "zstart" ]
then
PID_LIST=""
fi

for PID in $PID_LIST
do
    # echo "Checkpid $PID"
    if kill -0 $PID >/dev/null 2>&1
    then
    PID_LIST_TMP="$PID_LIST_TMP $PID"
    $count =`expr $count  + 1`
    fi
done
PID_LIST=$PID_LIST_TMP

if [ $more_re_to_process -eq "Y" ]
then
while [ $count -le $MAX_INSTANCE ]
do

    #prepare input for sql

    invoke SQL script sql1 with prepared one >LOG_$count
    PID_LIST = PID_LIST="$PID_LIST $!"

done
fi; done
在本例中,每当任何sql进程完成时,我都会创建一个新的sql进程。 但问题是我最终创建了一个新日志。我希望每当我创建一个新的SQL会话时,它都会使用已完成进程的日志文件(如果有)


有人能告诉我怎么做吗?

如果shell处理数组,您可以将PID作为元素存储在数组中,并在进程完成时仅清除元素,以便其他进程的索引保持不变;然后在调用新进程的循环中扫描清除的元素;使用数组索引
$count
>LOG_$count
使用已完成进程的日志文件