[CentOS] bash variable expansion moment

Todd Denniston Todd.Denniston at tsb.cranrdte.navy.mil
Mon Nov 16 14:49:33 UTC 2009

ken wrote, On 11/14/2009 07:37 PM:
> It's half a nice Saturday later and many attempts have brought no
> satisfaction.  Maybe this can't be done.
> I'm trying to write a function which, when called from one function
> execute in another.  In itself, that's not the problem.  Rather, there's
> one built-in variable which is evaluated in the function definition and
> it's value is then set (too early).
> I want the function Line to show the line number in the second file
> where it's executed, not the line number from the sourced function.
> Any mavens got the skinny on this?

As I understand the variable is interpreted from the perspective of the line of the file, and bash 
does not inline the function.

A trick around it can be gotten with the following modification of your scripts.
echo This is line "$MyLN" $@
#early, orig
echo This is line "$LINENO" $@


. ./func-file

MyLN=$LINENO Line ... it should be $LINENO
LineO ... it should be $LINENO

Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter

More information about the CentOS mailing list