Io ho provato un here document su script come hai indicato nel primo post e non ho avuto problemi di sorta.
codice:
[sergio@winnie ~/test/ftp_site]$ ls
script.sh
[sergio@winnie ~/test/ftp_site]$ cat script.sh
ftp -n ${1} << END_SCRIPT
user ${2} ${3}
binary
ls
get index.html
END_SCRIPT
[sergio@winnie ~/test/ftp_site]$ bash script.sh sito user password
-rw-r--r-- 1 (?) (?) 974 Jan 17 20:38 index.html
[sergio@winnie ~/test/ftp_site]$ $ ls
index.html script.sh
[sergio@winnie ~/test/ftp_site]$
ricontrolla le variabili, ecc.
ciao