Korn shell script Question

Kris Maglione bsdaemon at comcast.net
Fri Feb 2 18:50:52 UTC 2007


On Fri, Feb 02, 2007 at 11:10:02AM -0500, Dak Ghatikachalam wrote:
>{ while cat /tmp/availspace.$$; do false; done } |&
>exec 5<&p
>cat  /tmp/reprocesses.$$|awk '/DATAFILE/ { print $0 }'|tr -d ' '|
>while read file_b
>do
>        read -u5 file_a
>        echo $file_b $file_a
>done >/tmp/reprocessrecset.$$
>
>exec 5<&-
>
>this what you meant ?

It doesn't matter where you put the redirects, so long as they're in 
order and you wind up closing the coprocess's standard output so that it 
exits. It's more a matter of style and taste than anything. Here are 
some more options if you're interested:

As long as you haven't started any other background jobs, this would 
work in place of the final 'exec 5<&-':
kill -INT %+

Or, after you start the coprocess, you can store its PID, and kill that 
later:
copid=$!
...
kill -INT $copid

Again, it's a matter of style and taste. If it's not to be part of a 
long running script, though, don't even worry about it.


More information about the freebsd-questions mailing list