我有以下脚本:
echo "$wk" | while read -r a b;
do
counter=$(($counter+1))
nohup sh -c 'impala-shell -d nielsen -f query.sql --var=dt=$a --var=incre=$b;
echo $a,$?>>$week_status_file;
if [ $? -ne 0 ]; then
echo $a,$b>>$err_week_file
fi'
if [ $(($counter%5)) == 0 -a $counter -ge 5 ];
then
echo "Check"
wait
fi
done
Run Code Online (Sandbox Code Playgroud)
impala-shell...
这个想法是用两个变量a
和b
(来自变量)启动包装的命令wk
。这应该与 5 个进程并行完成。接下来的 5 个作业应等待前 5 个进程完成。我当前的代码打印出来Check
,但它根本不等待。但是,如果我更改wait
为sleep 10s
,它就会休眠。
我如何wait
在这里工作?