#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH # job msg log temp file MSG_LOG=/tmp/job_log rm -f $MSG_LOG # background job function bg_job(){ JOB=$1 sleep $JOB echo $JOB "End" >> $MSG_LOG } JOB_LIST=( "5" "6" "3" "4" ) # run all job for FLASH in "${JOB_LIST[@]}" ; do bg_job $FLASH & done # Waiting for the end of all the job while [ "j$(jobs -r)" != "j" ] ; do sleep 1 done # show job msg cat $MSG_LOG echo "<< bg_job all complete >>" exit 0;
2011-01-24 13:47
[Shell] 等待所有子程序結束
當在用 shell 開其他子程序時,通常會希望在所有程序結束時做一些處理,最簡單的方式就是用一支迴圈去等待其他子程序的結束,這裡用到 jobs 這個指令去檢查子程序是不是還在執行。
訂閱:
張貼留言 (Atom)
0 回應:
張貼留言