$ coproc WC { wc; } [1] 10038 $ ps PID TTY TIME CMD 9926 pts/3 00:00:00 bash 10038 pts/3 00:00:00 bash 10039 pts/3 00:00:00 wc 10040 pts/3 00:00:00 ps $ ls -lgo /proc/{$$,10038,10039}/fd/ /proc/10038/fd/: total 0 lr-x------ 1 64 Mar 14 02:29 0 -> pipe:[81214] l-wx------ 1 64 Mar 14 02:29 1 -> pipe:[81213] lrwx------ 1 64 Mar 14 02:28 2 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:29 255 -> /dev/pts/3 /proc/10039/fd/: total 0 lr-x------ 1 64 Mar 14 02:29 0 -> pipe:[81214] l-wx------ 1 64 Mar 14 02:29 1 -> pipe:[81213] lrwx------ 1 64 Mar 14 02:28 2 -> /dev/pts/3 /proc/9926/fd/: total 0 lrwx------ 1 64 Mar 14 02:26 0 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:26 1 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:25 2 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:26 255 -> /dev/pts/3 l-wx------ 1 64 Mar 14 02:26 60 -> pipe:[81214] lr-x------ 1 64 Mar 14 02:26 63 -> pipe:[81213] $ echo ${WC[@]} 63 60 $ exec {WC[1]}>&- [1]+ Done coproc WC { wc; } $ ps PID TTY TIME CMD 9926 pts/3 00:00:00 bash 10042 pts/3 00:00:00 ps $ echo ${WC[@]} $ ls -lgo /proc/$$/fd/ total 0 lrwx------ 1 64 Mar 14 02:26 0 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:26 1 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:25 2 -> /dev/pts/3 lrwx------ 1 64 Mar 14 02:26 255 -> /dev/pts/3