Coprocess - Create Subshells Asynchronously | Online Free DevTools by Hexmos
Create asynchronous subshells with Coproc in Bash. Manage concurrent processes and streamline background tasks. Free online tool, no registration required.
coproc
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"