Это показывает способ накапливать пользователей 10 одновременно.Вам нужно будет изменить его так, чтобы он соответствовал тому, как вам нужны данные для поиска оператора insert
.Я оставил внутренний цикл на месте, но изменил его на цикл for
, так как все управление происходит в одном месте.Однако вам может не понадобиться этот цикл.
process () {
# Somewhere in here you'll use the value of "$@"
echo "begin"
# you may not need this loop any more
for ((i=1; i<30; i++))
do
echo "insert into usertab values ($user,-1,\"\",-1)"
done
echo "commit"
}
j=0
while read -r user
do
echo "processing user $user"
if ! (( j++ % 10 )) # every tenth user, do a database operation
then
process "$accum" | propSql userDb -
accum=""
fi
accum+=" $user" # accumulate user names
done < "$userlist"
process "$accum" | propSql userDb - # one more time to get the remainder
Обратите внимание, что он написан с использованием синтаксиса ksh93.Если вы используете другую версию, вам нужно будет внести некоторые изменения.