doc: give a tee example for combining process substitution outputs

This can be useful if you want to further process data
from process substitutions. For example:
  datagen | tee >(md5sum --tag) > >(sha256sum --tag) | sort

* doc/coreutils.texi (tee invocation): Mention that -p is
useful with pipes that may not consume all data.
Add an example, similar to the one above.
* THANKS.in: Add Jirka Hladky.
This commit is contained in:
Pádraig Brady 2015-11-20 11:54:00 +00:00
parent 56d3269207
commit c7f049c503
2 changed files with 17 additions and 0 deletions

View File

@ -299,6 +299,7 @@ Jesse Thilo jgt2@eecs.lehigh.edu
Jie Xu xuj@iag.net
Jim Blandy jimb@cyclic.com
Jim Dennis jimd@starshine.org
Jirka Hladky jhladky@redhat.com
Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen@jochen.org
Joe Orton joe@manyfish.co.uk

View File

@ -13019,6 +13019,11 @@ so it works with @command{zsh}, @command{bash}, and @command{ksh},
but not with @command{/bin/sh}. So if you write code like this
in a shell script, be sure to start the script with @samp{#!/bin/bash}.
Note also that if any of the process substitutions (or piped stdout)
might exit early without consuming all the data, the @option{-p} option
is needed to allow @command{tee} to continue to process the input
to any remaining outputs.
Since the above example writes to one file and one process,
a more conventional and portable use of @command{tee} is even better:
@ -13087,6 +13092,17 @@ tar chof - "$tardir" \
| bzip2 -9 -c > your-pkg-M.N.tar.bz2
@end example
If you want to further process the output from process substitutions,
and those processes write atomically (i.e., write less than the system's
PIPE_BUF size at a time), that's possible with a construct like:
@example
tardir=your-pkg-M.N
tar chof - "$tardir" \
| tee >(md5sum --tag) > >(sha256sum --tag) \
| sort | gpg --clearsign > your-pkg-M.N.tar.sig
@end example
@exitstatus