[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Builtin 'read' data not saved
From: |
Chet Ramey |
Subject: |
Re: Builtin 'read' data not saved |
Date: |
Thu, 02 Jan 2014 21:14:47 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
On 1/2/14, 2:35 PM, P Fudd wrote:
> Here's some more oddities:
>
> =====failing.sh:
> #!/bin/bash
> R="1|2"
> IFS='|' read -r A B <<< $R
> echo A=$A, B=$B
> ====
> Expected: "A=1, B=2"
> Actual: "A=1 2, B="
This is a bug in bash-4.2. The expansion of $R is not supposed to be
subject to the value of IFS. You can read a discussion of the issue here:
http://lists.gnu.org/archive/html/bug-bash/2013-01/msg00041.html
> ====fail2.sh:
> #!/bin/bash
> R="1|2"
> while IFS='|' read -r A B; do
> echo 1:A=$A, B=$B
> done <<< $R
> echo 2:A=$A, B=$B
A and B will be unset when the second `read' hits EOF and returns failure,
breaking the loop.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/