我有一个bash脚本,它循环遍历一个文件夹并处理所有*.hql文件。有时一个配置单元脚本失败(语法、资源约束等),而不是脚本失败,它将继续运行到下一个.hql文件。
不管怎样,我可以阻止bash处理剩余的?下面是我的示例:
for i in `ls ${layer}/*.hql`; do
echo "Processing $i ..."
hive ${hiveconf_all} -hiveconf DATE=${date} -f ${i} &
if [ $j -le 5 ]; then
j=$(( j+1 ))
else
wait
j=0
fi
done
3条答案
按热度按时间q8l4jmvw1#
添加
到你剧本的顶端
w6lpcovy2#
我将检查前一个命令的进程完成状态,并调用exit命令以退出循环
在hive命令之后引入上面的行,应该可以做到这一点。
jxct1oxe3#
使用此模板运行并行进程并等待其完成。添加您的
date
,layer
,hiveconf_all
以及其他变量:然后您将能够单独检查每个进程日志。