coproc Command Examples
Bash builtin for creating interactive asynchronous subshells. More information: https://www.gnu.org/software/bash/manual/bash.html#Coprocesses.
- Run a subshell asynchronously:
 
coproc { {{command1; command2; ...}}; }
- Create a coprocess with a specific name:
 
coproc {{name}} { {{command1; command2; ...}}; }
- Write to a specific coprocess 
stdin: 
echo "{{input}}" >&"${{{name}}[1]}"
- Read from a specific coprocess 
stdout: 
read {{variable}} <&"${{{name}}[0]}"
- Create a coprocess which repeatedly reads 
stdinand runs some commands on the input: 
coproc {{name}} { while read line; do {{command1; command2; ...}}; done }
- Create a coprocess which repeatedly reads 
stdin, runs a pipeline on the input, and writes the output tostdout: 
coproc {{name}} { while read line; do echo "$line" | {{command1 | command2 | ...}} | cat /dev/fd/0; done }
- Create and use a coprocess running 
bc: 
coproc BC { bc --mathlib; }; echo "1/3" >&"${BC[1]}"; read output <&"${BC[0]}"; echo "$output"