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