Проблема выглядит как конец строки в Windows.
Вот как вы можете проверить это в Python.
repr(open('rsync.sh', 'rb').read())
# If you see any \\r\\n, it's windows
Вот как вы можете это исправить:
text = open('rsync.sh', 'r').read().replace('\r\n', '\n')
open('rsync.sh', 'wb').write(text)
Edit
Вот некоторый код, который показывает проблему.
# Python:
open('abc-n.sh', 'wb').write('echo abc \\' + '\n' + 'def')
open('abc-r-n.sh', 'wb').write('echo abc \\' + '\r\n' + 'def')
А затем запустите файлы, которые мы сделали ...
$ sh abc-n.sh
abc def
$ sh abc-r-n.sh
abc
abc-r-n.sh: 2: def: not found