|
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 2Looks like the bash doesn't restore the i'm-in-function indicator when running compound command (like while or if) in functions' subshell.
RR
[Prev in Thread] | Current Thread | [Next in Thread] |