Je suis en train de dire qu'une instruction ftp n'est pas une instruction shell. Tel que tu l'as écris, tes instructions ftp ne sont pas passées à ftp mais à ton interpréteur shell. Tout ce passe exactement comme si tu tapais successivement toutes ces commandes derrière ton invite de commande shell. Or seule l'instruction "/usr/bin/ftp -n -v" est compréhensible par ton shell, d'où l'erreur.
Si tu adoptes une méthode comme celle proposée par le lien que je t'ai donné (ou celle proposée par dubcek), tu rediriges bien des instructions ftp (open etc...) dans la commande ftp, et elles sont donc correctement passées à ftp et donc correctement interprétées.
Dans le lien que je t'ai donné, on redirige un fichier contenant des instructions ftp dans la commande ftp. Dubcek a une méthode peut-être plus parlante (en tout cas plus proche de ce que tu as commencé à faire), il redirige la suite du script shell (jusqu'au EOF) dans l'entrée standard (lue par ftp).
Ce qu'il faut bien voir, c'est que sous linux, tout est fichier. Ainsi tu peux indifféremment rediriger dans une commande un fichier au sens habituel du terme ou ce que tu saisis au clavier (l'entrée standard qui n'est autre que le fichier /dev/stdin), et bien d'autres choses encore.
Bonne chance