Eu uso lftp
na maioria dos meus scripts para automatizar uploads / downloads e o uso da sintaxe do HEREDOC sempre funcionou:
lftp -u user,pass ftpsite.com << EOF
cd remote/dir/
put /local/file.txt
bye
EOF
Certifique-se de proteger sua senha entre '
, pois ela pode conter caracteres reservados que são interpretados pelo shell (e depois não são passados corretamente para lftp
): lftp -u user,'password'
.