2008/12/5 Omer Zak <[EMAIL PROTECTED]>:
> I checked the expressions, using 'echo $whatever' in my bash, whose
> version string is:
> GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
> Copyright (C) 2005 Free Software Foundation, Inc.
>
> All behaved without extra quote marks or whatever.
>
> So, Amos - please let us know which shell and version did you use for
> 'sh'.

# bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

This is an up to date centos 5.2

The "echo" indeed shows things as they are expected, but:

e=echo
$e $rsync $local/ $copyto/

gives:

e=echo
+ e=echo
$e $rsync $local/ $copyto/
+ echo /usr/bin/rsync -navHz --delete --delay-updates --bwlimit=256 -e
''\''ssh' -i '/root/rsync.id'\''' /mnt/data/html/minicpan/
test01:/mnt/data/html/minicpan/
/usr/bin/rsync -navHz --delete --delay-updates --bwlimit=256 -e 'ssh
-i /root/rsync.id' /mnt/data/html/minicpan/
test01:/mnt/data/html/minicpan/

And maybe that's what the eval does, i.e. it's equivalent to:

eval `$e $rsync $local/ $copyto/`

Which works right (but then - the echo and `` are redundant).

Cheers,

--Amos

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to