On 10/10/15 9:36 AM, Carlos Pita wrote:
> Hi Chet,
>
> consider the following program:
>
> yyy() {
> continue
> }
>
> xxx() {
> while true; do
> echo x
> yyy
> echo y
> break
> done
> }
>
> xxx
>
> In the bash devel branch it will ignore the continue and echo
>
> x
> y
The change was made intentionally. Historical versions of sh ignore (or
more precisely reset) the loop state when entering a shell function, so
the continue doesn't have any effect. Posix doesn't say anything specific
about it, but it doesn't call out a change from the historical behavior,
so it came up reported as a bug.
The discussion about the change took place on the dash mailing list,
but the gmane.org archives are down right now so I can't give you a URL.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/