代码:
HOST=localhost
PORT=1234
RSYNCCMD="rsync -avP -e \"ssh -p $PORT\""
${(z)RSYNCCMD} root@$HOST:"\"/foo\"" /bar
输出:
rsync: Failed to exec ssh -p 1234: No such file or directory (2)
...
如果我直接在控制台中输入相同的内容(rsync -avP -e "ssh -p 1234" ...
),则可以正常工作。
我该如何解决?
答案 0 :(得分:1)
使用${(Q)${(z)RSYNCCMD}}
可能适合您(而不是${(z)RSYNCCMD}
)
(${(z)RSYNCCMD}
似乎扩展为rsync -avP -e \"ssh\ -p\ 1234\"
,(Q)执行额外的不引人注意的魔术)