there are certain constructs of quoting that you simply cannot do with a shell.
put your 'ssh -i /root/rsync.id' command in a script file, and supply the script file in the '-e' flag of rsync.
you may also pus the 'ssh -i ...' in a shell function - it'll work just the same.
--guy Amos Shapira wrote:
Hi, I've been doing shell programming for years but this got me stomped (simplified version): rsync="/usr/bin/rsync -navHz --delete --delay-updates --bwlimit=256 -e 'ssh -i /root/rsync.id'" local=/mnt/data/html/minicpan copyto="test01:$local" $rsync $local/ $copyto/ When I execute this script with "sh -vx" the final lines are: $rsync $local/ $copyto/ + /usr/bin/rsync -navHz --delete --delay-updates --bwlimit=256 -e ''\''ssh' -i '/root/rsync.id'\''' /mnt/data/html/minicpan/ test01:/mnt/data/html/minicpan/ Missing trailing-' in remote-shell command. rsync error: syntax or usage error (code 1) at main.c(361) [sender=3.0.4] It looks like the shell splits the value of "$ssh" into words and adds quoting around them. The rsync command line I'd like to see is: /usr/bin/rsync -navHz --delete --delay-updates --bwlimit=256 -e ''ssh -i /root/rsync.id'' /mnt/data/html/minicpan/ test01:/mnt/data/html/minicpan/ But whatever I tried so far playing with single quotes or back-slashes I haven't managed to make the shell do that. What am I missing? Thanks, --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]
================================================================= 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]