Table of Contents
Newsgroups: comp.unix.shell
> But it doesn't seem to be working. It starts printing to the stdout (numeric > file descriptor: 1) only when TestProcess seems to have finished > execution. Can anyone tell me the mechanism of running co-processes via > shell scripts, because I've spent considerable time experimenting with it, > and it hasn't worked out.
well, I test you script using the following TestProcess function and your script seems to be working great. I guess your problem is in your TestProcess program/function ?
function TestProcess { integer last=0
while :; do (( last && read )) if (( RANDOM % 25 % 2 )); then last=1 echo Search Pattern ok else echo failed fi done }
TestProcess |&
exec 3<&p exec 4>&p
while read -u3 line do print "LINE:" "$line" result=`echo $line| grep "Search Pattern"`
if [ "$result" != "" ] then print "Search Pattern found..." print -u4 " \n" fi done
# ./test LINE: Search Pattern ok Search Pattern found... LINE: ko LINE: Search Pattern ok Search Pattern found... LINE: Search Pattern ok Search Pattern found... LINE: ko LINE: ko LINE: ko LINE: ko LINE: Search Pattern ok Search Pattern found... LINE: Search Pattern ok Search Pattern found... LINE: ko ...
Cyrille.