Isso porque o bash os reconhece primeiro.
rsync -av "$FROM" "$TO"
Um trecho de um script que estou usando para fazer backup de algumas fotos:
#!/bin/bash
FROM="/cygdrive/f/\"Trip to Austria\""
TO="/cygdrive/s/\"Trip to Austria\""
rsync -av $FROM $TO
Quando imprimo o comando final de dentro do script, ele é impresso corretamente, ou seja,
rsync -av /cygdrive/f/"Trip to Austria" /cygdrive/s/"Trip to Austria"
No entanto, o comando não funciona quando eu executo o script. O erro que recebo está relacionado aos espaços nos caminhos não serem reconhecidos.
rsync: link_stat "/cygdrive/f/Photos/"Trip" failed: No such file or directory (2)
rsync: link_stat "/home/User/to" failed: No such file or directory (2)
rsync: change_dir "/home/User/Austria"" failed: No such file or directory (2)
Estranhamente, o comando funciona quando eu o digito no shell do Cygwin.
O que dá?
Tags bash rsync cygwin shell-script