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="$@"''.