[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IFS handling and read
From: |
Chris F.A. Johnson |
Subject: |
Re: IFS handling and read |
Date: |
Mon, 30 Nov 2009 09:21:31 -0500 (EST) |
User-agent: |
Alpine 2.00 (LMD 1167 2008-08-23) |
On Mon, 30 Nov 2009, Marc Herbert wrote:
> Lhunath (Maarten B.) a ?crit :
> > On 30 Nov 2009, at 11:34, Marc Herbert wrote:
> >
> >> Eric Blake a ?crit :
> >>> This is E4 in the FAQ:
> >>> ftp://ftp.cwru.edu/pub/bash/FAQ
>
> > Instead of ''commands | read var''
> > Use ''read var < <(commands)''
> > I hardly see a need to change the existing implementation.
>
> As mentioned in the FAQ, ''read var < <(commands)'' is not portable.
>
> All alternatives in the FAQ (portable or not) are less readable than a
> simple pipe. They are all more verbose and introduce an extra level of
> nesting when you have only one "command". They all need to be read
> "backwards" with respect to the execution flow. If you want to keep your
> code readable, they practically all force you to define a function for
> "commands" as soon as you have more than a few commands.
>
> Every entry in an FAQ is by mere definition a problem that many people
> wast... spend time on.
>
> It is admittedly not a question of life or death but some other shells
> apparently have it so why not bash? Just asking.
Why should it be the last element of a pipeline that is executed in
the current shell and not the first?
Suppose that I have a group of commands that sets some variables
and outputs information to the screen, for example (this is much
oversimplified):
{
x=$(( $something * 2 ))
printf "%d\n" "$x"
}
Now, I want to modify the output. I pipe it through a formatting
command:
{
x=$(( $something * 2 ))
printf "%d\n" "$x"
} | tr 0-9 9-0
All of a sudden, x is not set (or set to the wrong value). So it
should be the *first* command, not the last, that is executed in
the calling shell.
--
Chris F.A. Johnson, webmaster <http://woodbine-gerrard.com>
===================================================================
Author:
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
Pro Bash Programming: Scripting the GNU/Linux Shell (2009, Apress)
- Re: IFS handling and read, (continued)
- Re: IFS handling and read, Greg Wooledge, 2009/11/30
- Re: IFS handling and read, Chris F.A. Johnson, 2009/11/30
- Re: IFS handling and read, Lhunath (Maarten B.), 2009/11/30
- Re: IFS handling and read, Chris F.A. Johnson, 2009/11/30
- Re: IFS handling and read, Chet Ramey, 2009/11/30
- Re: IFS handling and read, Lhunath (Maarten B.), 2009/11/30
- Message not available
- Re: IFS handling and read, Jan Schampera, 2009/11/30
- Re: IFS handling and read, Andreas Schwab, 2009/11/30
- Re: IFS handling and read, Marc Herbert, 2009/11/30
- Re: IFS handling and read, Lhunath (Maarten B.), 2009/11/30
- Re: IFS handling and read,
Chris F.A. Johnson <=
- Re: IFS handling and read, Marc Herbert, 2009/11/30
- Re: IFS handling and read, Greg Wooledge, 2009/11/30
- Message not available
- Re: IFS handling and read, pk, 2009/11/30
- Re: IFS handling and read, pk, 2009/11/30