Invoking rsync from a script with null parameters

Joe josephj at main.nc.us
Sun Nov 4 20:23:21 MST 2012


I'm working on a bash backup script using rsync.
(kubuntu precise 12.04, rsync 3.0.9-1ubuntu1)

To avoid having a number of slightly different rsync commands, I would
like to use shell variables as part of the rsync command.  I.e.:
DRYRUN="-n"
rsync "${DRYRUN}" more parameters ...

This does not work if DRYRUN="" - apparently because this command becomes
rsync "" more parameters ...
instead of
rsync more parameters ...

and rsync uses the null parameter for something and does not perform as
expected.  It does not generate any error or diagnostic message.

Is there a way to get around this problem - other than coding each
permutation of the command separately?

I'm experimenting with putting the whole rsync command in a string so I
can run it after any null parameters revert to pure white space.  Once I
get the quoting to work (preserving those quotes I still need), this
method should work, but it's less than elegant.

Is this a bug in rsync?  (Shouldn't it at least complain/error exit if
it gets something like this that it doesn't understand?)  If it is,
what's the best way to report it?

Ideally (for me anyway), I would like it to completely ignore any null
parameters, but I don't know what problems that might cause for other
people.

TIA

Joe



More information about the rsync mailing list