- #!/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 回應:
張貼留言