Table of Contents

About

On systems that can support it, there is an additional expansion available: process substitution

A list is run asynchronously, and its input or output appears as a filename (ie file path)

  • If the >(list) form is used, writing to the file will provide input for list.
  • If the <(list) form is used, the file passed as an argument should be read to obtain the output of list.

Example

Pass a list as filename/path argument <(list) form

It permits to pass a string as a file path.

Example: If the cli script expect only a path (ie a file descriptor), you can still give it generated content like that:

script <(echo "Content")

Example >(list) form

echo test | tee >(cat) >/dev/null

Note

When using process substitution, bash creates the file descriptor at /dev/fd/x such as /dev/fd/63