]>
Commit | Line | Data |
---|---|---|
a0c0a00f CR |
1 | : ${TMPDIR:=/tmp} |
2 | TMPOUT=${TMPDIR}/coproc-wait-$BASHPID | |
3 | ||
3185942a JA |
4 | coproc { echo a b c; sleep 2; } |
5 | ||
a0c0a00f CR |
6 | case $COPROC_PID in |
7 | [0-9]*) ;; | |
8 | *) echo COPROC_PID not integer ;; | |
9 | esac | |
10 | ||
3185942a JA |
11 | echo ${COPROC[@]} |
12 | ||
13 | read LINE <&${COPROC[0]} | |
14 | echo $LINE | |
15 | ||
16 | wait $COPROC_PID | |
17 | ||
18 | coproc REFLECT { cat - ; } | |
19 | ||
a0c0a00f CR |
20 | case $REFLECT_PID in |
21 | [0-9]*) ;; | |
22 | *) echo REFLECT_PID not integer ;; | |
23 | esac | |
24 | ||
3185942a JA |
25 | echo ${REFLECT[@]} |
26 | ||
27 | echo flop >&${REFLECT[1]} | |
28 | read LINE <&${REFLECT[0]} | |
29 | ||
30 | echo $LINE | |
31 | ||
a0c0a00f CR |
32 | { sleep 1; kill $REFLECT_PID; } & |
33 | wait $REFLECT_PID >$TMPOUT 2>&1 || echo "coproc.tests: REFLECT: status $?" | |
34 | grep 'Terminated.*coproc.*REFLECT' < $TMPOUT >/dev/null 2>&1 || { | |
35 | echo "coproc.tests: wait for REFLECT failed" >&2 | |
36 | } | |
37 | rm -f $TMPOUT | |
38 | exec 2>&1 | |
3185942a JA |
39 | |
40 | coproc xcase -n -u | |
41 | ||
a0c0a00f CR |
42 | case $COPROC_PID in |
43 | [0-9]*) ;; | |
44 | *) echo COPROC_PID not integer ;; | |
45 | esac | |
46 | ||
3185942a JA |
47 | echo ${COPROC[@]} |
48 | ||
49 | echo foo >&${COPROC[1]} | |
50 | read <&${COPROC[0]} | |
51 | ||
52 | echo $REPLY | |
53 | echo ${COPROC[@]} | |
54 | ||
55 | cat /etc/passwd | grep root | awk -F: '{print $1;}' | sed 1q | |
56 | ||
57 | exec 4<&${COPROC[0]}- | |
58 | exec >&${COPROC[1]}- | |
59 | ||
60 | echo ${COPROC[@]} | |
61 | ||
62 | read foo <&4 | |
63 | echo $foo >&2 | |
64 | ||
65 | exit 0 |