[Top][All Lists]

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

Re: [Help-bash] Bash Trap: How to Get Line Number of a Subprocess with N

From: Steve Amerige
Subject: Re: [Help-bash] Bash Trap: How to Get Line Number of a Subprocess with Non-Zero Status
Date: Mon, 2 Jan 2017 04:59:49 -0500
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

   On 12/30/2016 12:50 PM, Chet Ramey wrote:

It's the difference between a simple command, which has a line number, and
a subshell command, which does not.  The subshell command's line number is
derived from the execution context, which is relative to the start of the
function.  The OP wants the subshell's line number to be absolute, like the
simple command's, and not relative to the start of the function, as it is

   From an end-user's perspective, it is unexpected that the LINENO has
   the value of the
   beginning of the function instead of the line at which the ERR was
   caught by trap.
   While the "inside" of the subshell might have it's own characteristics,
   the inside must
   eventually meet the "outside" of the subshell... at which point, an end
   user can reasonably
   expect that an error is reported in a common-sense way with the line
   number that is
   seen in the script file itself. While the current behavior can be
   explained, that doesn't
   mean it is expected by end users or makes sense.
   Using any other line number for LINENO also makes it harder to debug
   scripts, of course,
   since the line number being reported isn't as helpful.
   Is there any way this can be fixed... or introduced as a feature (e.g.,
   with some
   set -o or shopt flag)?  A fix would help out a significant number of
   people. As it is, a
   workaround now is to use:
   instead of:
   to get the expected behavior. But, this can mean some significant
   re-writing of code.
   Steve Amerige
   Server Science Incorporated
   [1]Eggsh: A Powerful and Reusable Bash Scripting Platform, an
   Open-Source Project



reply via email to

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