从shell并行调用SQL脚本
我使用下面的逻辑并行执行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
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
使用已完成进程的日志文件