> The point is that the original escaping DOUBLE escapes an equals sign:
> foo\\\=bar
> It shouldn't, there's no reason to.
If you paste into your command line:
rsync -e ssh\ -l\ backup\ -i\ /etc/synco/id_rsa\ -o\
ConnectTimeout\\\=60\ -o\ BatchMode\\\=yes
The list of arguments would be (i.e. the values in ARGV):
['rsync', '-e', 'ssh -l backup -i /etc/synco/id_rsa -o
ConnectTimeout\=60 -o BatchMode\=yes']
The command
ssh -l backup -i /etc/synco/id_rsa -o ConnectTimeout\=60 -o BatchMode\=yes
Is a correct and valid shell command.
When RSync parses this in do_cmd, it should convert the '\=` sequence
into '=' but it doesn't.. This intuition is derived from the fact
that
if you instead passed the string to `system('ssh -l backup -i
/etc/synco/id_rsa -o ConnectTimeout\=60 -o BatchMode\=yes')` that the
ARGV generated would be ['ssh', '-l', 'backup',
'-i',
'/etc/synco/id_rsa', '-o', 'ConnectTimeout=60',
'-o',
'BatchMode=yes'].
Basically, even if there WAS no reason to do so, doesn't mean it's
invalid or undesirable. In theory, even passing in -e \\s\\s\\h should
be valid.
On 30 October 2016 at 01:13, Paul Slootman <paul+rsync at wurtel.net>
wrote:> On Sat 29 Oct 2016, Samuel Williams wrote:
>
>> I'm not proposing some additional characters to split on, but quite
>> the opposite, to handle the backslash escaped spaces correctly and NOT
>> split. Rest assured, there is no bug with the original escaping. For
>> your edification:
>>
>> $ echo \I\'\m\ \a\ \s\t\r\i\n\g
>> I'm a string
>
> The point is that the original escaping DOUBLE escapes an equals sign:
> foo\\\=bar
> It shouldn't, there's no reason to.
>
>
> Paul
>
> --
> Please use reply-all for most replies to avoid omitting the mailing list.
> To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/rsync
> Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html