Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14293

Re: Redirect to variable

From Greg Wooledge <wooledg@eeg.ccf.org>
Newsgroups gnu.bash.bug
Subject Re: Redirect to variable
Date 2018-07-03 08:53 -0400
Message-ID <mailman.3002.1530622426.1292.bug-bash@gnu.org> (permalink)
References <CALDPARB9JA75enT1bRa6wFQJsTwLPxibbB99jjvpMj9u2CwFtg@mail.gmail.com>

Show all headers | View raw


On Tue, Jul 03, 2018 at 10:43:31PM +1000, Robert Durkacz wrote:
> On 5/21/18 Chet Ramey wrote:
> 
> 
> > What you're asking for is syntactic sugar for:
> 
> > some-command > temp-file
> > echo '#' >> temp-file
> > variablename=$(< temp-file)
> > rm -f temp-file
> > variablename=${variablename%?}
> 
> > I would look at a sample implementation, possibly using mmap, if someone
> did one.
> 
> Could someone please explain the reason for inserting and removing the #
> character. It is as if to ensure temp-file is non-empty but it seems to me
> it would work anyway.

Command substitutions $(...) and `...` strip all trailing newline
characters from the output of the command.  So you don't get exactly
the output of the command.

In order to preserve the exact output, you need to append something
after the (potential) final newline(s), and then remove it afterward.
This works around the command substitution's newline-chomping feature.

Welcome to shell "programming".

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Redirect to variable Greg Wooledge <wooledg@eeg.ccf.org> - 2018-07-03 08:53 -0400

csiph-web