ExplosiusMgs escribió:con una tuberia? me podrias decir mas o menos como se hace eso
Mira lo que hago en un servidor ftp en el que tengo cuenta:
[josem@cebolleta:~]$ ftp ftpperso.free.fr <<FIN
> user XXX YYYY
> cd capturas
> ls
> FIN
drwx------ 2 web site 416 Apr 9 2006 .
drwxr-xr-x 9 web site 1056 May 19 06:48 ..
-rw-r--r-- 1 web site 136695 Feb 3 2005 2005-01-31_1024x768.jpg
-rw-r--r-- 1 web site 38053 Feb 3 2005 2005-01-31_1024x768t.png
-rw-r--r-- 1 web site 79522 Feb 3 2005 2005-02-03_1024x768-arriba.jpg
-rw-r--r-- 1 web site 78115 Feb 3 2005 2005-02-03_1024x768.jpg
-rw-r--r-- 1 web site 142341 May 8 2005 fvwm-radio.jpg
-rw-r--r-- 1 web site 43525 Feb 3 2005 tn-2005-02-03_1024x768-arriba.png
-rw-r--r-- 1 web site 43424 Feb 3 2005 tn-2005-02-03_1024x768.png
En realidad te he complicado el ejemplo un poco usando los
Here Documents de bash. Pero el caso es que escribo todo en la shell de bash y luego se ejecutan los comandos (dentro del cliente ftp). Jamás me meto en la sesión interactiva de ftp. Todo el guión que he escrito en el entorno de bash se lo paso a ftp. La variante con tubería sería meter esos comandos en un ficherito (foo.ftp, por ejemplo) y luego ejecutar:
$ ftp ftpperso.free.fr < foo.ftp
Pero esta variante me obligaría a mantener dos ficheros por separado: el script de bash y el guión de instrucciones ftp. Con los
Here Documents podría meterlo todo en el script de bash.
En mi humilde opinión, usar expect para lo que quieres es matar moscas a cañonazos.