On Sun, Nov 15, 2009 at 06:21:40PM -0500, ken wrote: > > Is this what you wanted to do? > > Stephen, thanks for your reply, but you're not seeing what I want to do. > Let me post my example once again: You're not reading what I wrote. > ------------------------- > Line() > { > echo This is line "$LINENO" $@ As I said in my previous mail, use ${BASH_LINENO[0]} instead, which tells you the line it was called from. Thus: $ cat func-file Line() { echo This is line "${BASH_LINENO[0]}" $@ } $ cat x #!/bin/bash . ./func-file Line ... it should be $LINENO $ ./x This is line 5 ... it should be 5 > but it's not. The num output in "This is line [num]" is whatever the > line number is in the function definition. (I.e., $LINENO is evaluated > in the function. Try it if you don't believe me.) I explained to you _exactly_ why you are seeing the behaviour you are seeing. Your interpretation of what is happening is wrong. $LINENO gets _reset_ when you enter a function. > What I'm looking for is the proper syntax to wrap around $LINENO in the You can _not_ use $LINENO in this manner. You _must_ use the BASH_LINENO array. That's what it was created for. > function definition (in func-file) so that it's not evaluated there but > is evaluated when the function is called in the second file. You clearly don't understand how scripts are evaluated. I've given you the answer; I've proven it with output from the shell; I've referenced the documentation; I've explained how this works. I even told you the solution and what variable you should use. I give up. -- rgds Stephen