On 08/23/2010 03:55 PM, Eric Blake wrote:
We may be able to help you efficiently re-write your existing code into
an equally manageable but more portable solution using existing tools,
or it may help to convince us that the shorthand is truly useful.

I agree that a full example would be helpful.  Here's a quick sketch
of a shell script that solves the stated problem without using a
named fifo.  Without the full example it's hard to say whether
this approach would work well in the existing code.

#! /bin/sh
nl='
'
a() { for i in 0 1 2 3 4 5; do echo B$i; echo C$i; done; }
b1() {
  start_b2=$nl
  while read command
  do
    case $command in
    (C*) printf '%s\n' "$command" >&3;;
    (B*) printf '%s\n' "$start_b2$command"; start_b2=;;
    esac
  done
}
maybe_b2() { read line && sed 's/^./D/'; }
c() { sed 's/^/E/'; }

a | (b1 | maybe_b2) 3>&1 | c



Reply via email to