On Wed, May 09, 2007 at 03:28:53PM -0500, Frank M. Ramaekers alleged:
The first line in your function is only logging its first argument, not all arguments; and since you pass $line unquoted, the first word is the first argument.
You could either quote $line: ``LogIt "$line"'', or use all arguments
in
LogIt: ``Msg="$@"''.
-- Garrick Staples, GNU/Linux HPCC SysAdmin University of Southern California
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
That makes sense now...I didn't realize the difference...thanks!
So now that that makes sense to you, let me say that you should use both solutions :)
Quoting $line ensures that special meta-characters aren't expanded. For example, if $line contained a *, then the shell could expand it with files in the current directory.
And using $@ instead of $1 in LogIt is just more flexible and is closer to your actual intention of "log everything I pass on this line."