NAME PUMP(I)
pump - Shell data transfer command
SYNOPSIS
pump [ -[subchar] ] [ + ] [ eofstr ]
DESCRIPTION
Pump is a filter that copies its standard input to standard
output with possible substitution of Shell arguments and
variables. It reads its input to end-of-file, or until it
finds eofstr alone on a line. If not specified, eofstr is
assumed to be `!'. Normally, Shell variable and argument
values are substituted in the data stream, using `$' as the
character to indicate their presence. The argument `-'
alone suppresses all substitution, `-subchar' causes subchar
to be used as the indicator character for substitution in
place of `$'. Escaping is handled as in double quoted(")
strings: the indicator character may be hidden by preceding
it with a `\'. Otherwise, `\' and other characters are
transmitted unchanged. The `+' flag causes all leading tab
characters in the input to be thrown away, in order to per-
mit readable indentation of text and eofstr. Pump may be
used interactively and in pipelines. A common use is to get
variable values into editor scripts. If $a, $b, and $c have
the values A, B, and C respectively, the two sequences below
are equivalent:
pump -~ | ed file ed file
1,$s/~a$/~b/ 1,$s/A$/B/
?~c? ?C?
! q
The sequence above will work at the terminal as well as in
Shell procedures. Pump is an efficient and convenient
replacement for multiple uses of echo(I); e.g., the follow-
ing are equivalent:
pump >file echo "$1" >file
$1 echo "$2" >>file
$2
!
Pump is actually implemented inside the Shell, although it
executes as a separate process.
SEE ALSO
echo(I), sh(I)
BUGS
The size of eofstr is limited to 95 bytes, and it may not
begin with `+'.