大佬教程收集整理的这篇文章主要介绍了linux – 等待子shell进程完成,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
processUsageFile() { #sdate=`pin_virtual_time | awk -F" " '{print $3}'`; #Get all new files to be loaded to brm staging data. count=`ls ${PRE_STAGING}/TWN* 2>/dev/null|grep -v reprocess|wc -l` if [ $count -ne 0 ];then # Fork subsHell (./efx_omc_brm_rpt_process.sh -t TWN & )& exitOnError fi #Process Rapid Report files count=`ls $PRE_STAGING/RR* 2>/dev/null|grep -v reprocess|wc -l` if [ $count -ne 0 ];then (./efx_omc_brm_rpt_process.sh -t RR &)& exitOnError fi ... ... } #Reprocessing. Process the reprocessed files. #This method updates the records in the BRM staging table. reprocessingUsageFile() { #Process TWN fulfillment reprocess files count=`ls $PRE_STAGING/TWN*reprocess* 2>/dev/null|wc -l` if [ $count -ne 0 ];then # Fork subsHell (./efx_omc_brm_rpt_reprocess.sh -t TWN & ) & fi #Process Rapid Report files count=`ls $PRE_STAGING/RR*reprocess* 2>/dev/null|wc -l` if [ $count -ne 0 ];then (./efx_omc_brm_rpt_reprocess.sh -t RR &) & fi ... ... } #Pre processing PreProcessing # Start processing usage files. processUsageFile processErrFile
上述代码的思想是做并行处理.所有方法都调用多个子sHell并从tty中分离.我想知道是否有办法等待前两个方法先完成执行然后再运行最后一个方法.
等待PID在某种程度上是不准确的.仍然在尝试…
waitPids() { echo "TesTing $pids -- ${#pids[@]}" while [ ${#pids[@]} -ne 0 ]; do local range=$(eval echo {0..$((${#pids[@]}-1))}) local i for i in $range; do if ! kill -0 ${pids[$i]} 2> /dev/null; then echo "Done -- ${pids[$i]}" unset pids[$i] fi done pids=("${pids[@]}") sleep 1 done }
以上是大佬教程为你收集整理的linux – 等待子shell进程完成全部内容,希望文章能够帮你解决linux – 等待子shell进程完成所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。