System Grab Bag

View all TLDR pages from Linux (or from all pages)

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 stdin and 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 to stdout:
    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"

License and Disclaimer

The content on this page is copyright © 2014—present the tldr-pages team and contributors.
This page is used with permission under Creative Commons Attribution 4.0 International License.

While we do attempt to make sure content is accurate, there isn't a warranty of any kind.

Other Projects

This TLDR page is also found in other projects: