On 11/15/2009 08:54 AM Stephen Harris wrote:
On Sun, Nov 15, 2009 at 08:23:59AM -0500, ken wrote:
A function containing environmental variables in one file would be called in another file. The function would, then, pass (e.g.) $LINENO as if it were a literal, but in the line where $Line is invoked it would be evaluated and the value output.
I'm not quite sure what you're saying. Typically variables are not expanded at 'parse' time, but at run time.
....
From the original post (somewhere got edited out):
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).
Here's the one file (func-file): ------------------------- Line() { echo This is line "$LINENO" $@ } -------------------------
That one is called by this one: ------------------------- #!/bin/bash
. ./func-file
Line ... it should be $LINENO ------------------------
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.
=====================================
The problem is that $LINENO is evaluated in the function definition, and not when called. So I'm thinking to change "$LINENO" in the function definition to some other syntax so that it won't be evaluated until called.
tnx