Named Pipe[edit]

#!/bin/bash

MAX_JOBS=3
PIPE_FILE="/tmp/semaphore_$$"

mkfifo "$PIPE_FILE"
exec 3<> "$PIPE_FILE"
rm -f "$PIPE_FILE"

for ((i=0; i<MAX_JOBS; i++)); do

 echo >&3
done

for task_id in {1..10}; do
 read -u 3
 
 (
     echo "$task_id START"
     sleep 2
     echo "$task_id END"

     echo >&3
  ) &
done

wait

exec 3>&-

トップ   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS