Comandos de script de FTP de shell

Há muito me pergunto como criar um script que faça duas coisas aparentemente triviais.
* faça login em um servidor ftp
* faça upload de um arquivo local (ou lista de arquivos)
* feche a conexão

Eu descobri hoje:

#!/bin/sh
HOST
='ftp.users.qwest.net'
USER
='yourid'
PASSWD
='yourpw'
FILE
='file.txt'

ftp
-n $HOST <<END_SCRIPT
quote USER $USER

quote PASS $PASSWD

put $FILE

quit

END_SCRIPT

exit 0

o truque é usar -ncom o FTPcomando e digitar no shell do FTP comquote

Não há tratamento de erros. Você pode encontrar alguns conselhos aqui, onde copiei o truque sozinho