I'm writing a script that has logging via a simple routine: LogIt() { Msg="$1" echo "$THISSCRIPT: $Msg" echo "$Msg" >>$LogFile } #A portion of this script sends a file via ftp: # ftp -vn >$tempfile <<$$EOD : : $$EOD #Then reads the temporary file to log while read line do LogIt $line Done <$tempfile rm -f $tempfile -------------------------------------- All worked fine when I tested the ftp to a temporary file and reading it back to log the output, but once I created it as a cron entry (or so it seems) it now seems to take each line up to the first space: Connected 220-TCP/IP Copyright 220 Remote 331 230 250 200 local: 227 150-About : : See anything I'm doing wrong....any better way of handling this? TIA, Frank M. Ramaekers Jr. Systems Programmer; MCP, MCP+I, MCSE & RHCE American Income Life Insurance Company Phone: (254) 761-6649 Fax: (254) 741-5777
On Wed, May 09, 2007 at 02:46:49PM -0500, Frank M. Ramaekers alleged:> I'm writing a script that has logging via a simple routine: > > LogIt() { > Msg="$1" > echo "$THISSCRIPT: $Msg" > echo "$Msg" >>$LogFile > } > > #A portion of this script sends a file via ftp: > # > ftp -vn >$tempfile <<$$EOD > : > : > $$EOD > #Then reads the temporary file to log > while read line > do > LogIt $line > Done <$tempfile > rm -f $tempfile > -------------------------------------- > All worked fine when I tested the ftp to a temporary file and reading it > back to log the output, but once I created it as a cron entry (or so it > seems) it now seems to take each line up to the first space: > > Connected > 220-TCP/IP > Copyright > 220 > Remote > 331 > 230 > 250 > 200 > local: > 227 > 150-About > : > : > > See anything I'm doing wrong....any better way of handling this?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 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <http://lists.centos.org/pipermail/centos/attachments/20070509/08b43a00/attachment.sig>
Frank M. Ramaekers Jr. Systems Programmer; MCP, MCP+I, MCSE & RHCE American Income Life Insurance Company Phone: (254) 761-6649 Fax: (254) 741-5777 Sorry no quote today. Visit QLiner.com.>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 argumentsin>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 C0That makes sense now...I didn't realize the difference...thanks! Frank