Frank M. Ramaekers Jr. Systems Programmer; MCP, MCP+I, MCSE & RHCE American Income Life Insurance Company Phone: (254) 761-6649 Fax: (254) 741-5777 -----Original Message----- From: centos-bounces@centos.org [mailto:centos-bounces@centos.org] On Behalf Of Garrick Staples Sent: Wednesday, May 09, 2007 3:38 PM To: CentOS mailing list Subject: Re: [CentOS] Scripting question
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."