Settings

Theme

Using the Unix Chainsaw: Named Pipes and Process Substitution

vincebuffalo.org

10 points by jlkinsel 13 years ago · 4 comments

Reader

turnersd 13 years ago

Awesome - I never new about process substitution. I wanted to convince myself I knew what it was doing, so I started kicking this around a bit. I expected the first command to output "test." I'm not sure I can explain these results:

  $ echo <(echo test)
  /dev/fd/63 
  $ cat <(echo test) 
  test
  • vsbuffalo 13 years ago

    <(blah) runs the command blah, and pipes its standard output to a file descriptor (/dev/fd/63) above. You shell replaces the <(blah) with a path to the this file descriptor, so here, echo is just printing the file descriptor name.

    Since echo test prints "test" to standard out, in your second example this is piped to the file descriptor, which cat then reads from (printing "test").

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection