O'Reilly logo

Linux in a Nutshell, 6th Edition by Robert Love, Stephen Figgins, Ellen Siever, Arnold Robbins

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Coprocesses

A coprocess is a shell command that runs asynchronously in a subshell, connected to the originating shell by a two-way pipe. Set up a coprocess with the coproc reserved word:

coproc [NAME] command [redirections]

The reserved word coproc sets up the pipe to communicate with command and runs command in the background. NAME is the name of the coprocess (COPROC by default). If command is a complex command, NAME is optional; with a simple command, NAME must not be given and the default is used. If any redirections are specified, they are set up after the pipe has been set up.

The coprocess establishes an array with two values: NAME[0] contains the file descriptor for command output and NAME[1] contains the file descriptor for command input. The variable NAME_PID contains the process id of the coprocess. The return status is the exit status of command. You can use the wait built-in command to wait for the output of command.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required