#!/bin/sh rm -f t.pip t.txt mkfifo t.pip printf "line1\nline2\n" >t.txt ps { while true ; do cp t.txt t.pip done } & rm -f t.rc.* for rc in 0 1 2 3 4 5 6 7 8 9 ; do { diff t.pip t.txt echo $? >t.rc.$rc } done echo result1 start ls t.rc.* | wc -l cat t.rc.* echo result1 end rm -f t.rc.* for rc in 0 1 2 3 4 5 6 7 8 9 ; do { diff t.pip t.txt echo $? >t.rc.$rc } & # run the readers in parallel done sleep 10 echo result2 start ls t.rc.* | wc -l cat t.rc.* echo result2 end ps