[CentOS] Scripting question

Garrick Staples garrick at usc.edu
Wed May 9 20:15:08 UTC 2007


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>


More information about the CentOS mailing list