bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug in function return statement in while subshell


From: Roman Rakus
Subject: Re: Bug in function return statement in while subshell
Date: Mon, 29 Jul 2013 19:15:43 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

On 07/29/2013 05:06 PM, Chet Ramey wrote:
On 7/29/13 10:55 AM, Roman Rakus wrote:
I didn't take a look on where the problem could be, but it is discussed on
stackoverflow [1].

Looks like return builtin falsely exit execution of while loop instead of
function.

What would you like to see happen?  You're in a subshell: the function
can't return, since this is not the shell that called it.  Do you want
parent and child shells both continuing execution after the function call?

Chet

As Chris said, some error, because return is not in function.

Example:
f1() {
    : | while :; do return 3; done
    echo $?
    return 1
}
echo $?
f1; echo $?
return 2

Looks like the bash doesn't restore the i'm-in-function indicator when running compound command (like while or if) in functions' subshell.

RR



reply via email to

[Prev in Thread] Current Thread [Next in Thread]