Newsgroup: it.comp.os.linux.development
Titolo: FTP su script (shell bash) - Problema

Ciao a tutti.
Necessito di automatizzare una sessione ftp in uno script e ho fatto questo
(tralasciando il prima e il dopo):
...
ftp -n <<FINE
open $HOST
quote user $USER
quote pass $PASS
debug
put $1
get $1 controllo.tmp
bye
FINE
if [ -f controllo.tmp ]
then
	echo "Sessione FTP conclusasi correttamente"
	rm -f controllo.tmp
else
	echo "Errore durante la sessione FTP"
fi
...
Il problema è che una volta esehguito il "bye" oltre a uscire dall'ftp mi si
chiude anche la shell, e tutto quello che viene dopo è come se non
esistesse, non mi fa neanche il controllo... aiuto!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

), leggendo bene il man per tutte le opzioni che 
offre.
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 esistesse, non mi fa neanche il controllo... aiuto!
Strano, io uso lo stesso identico schema e funziona...
A che ti serve il "debug"? Hai provato a levarlo?
P.S. Io, per completezza, mandere l'output su un file e poi farei qualche
controllo, tipo numero di linee, ultima linea e roba del genere.
FINE >controllo.out 2>&1
<< parse di controllo.out >>
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch


Umh... interessante, ci proverň, grazie, perň ora devo, anzi voglio capire
come mai mi succede sta cosa...



Ecco lo sapevo...
Il debug l'ho messo per avere qualcosa in più nello stdout. Ho cominciato
senza debug e non cambia nulla.
Il controllo sul'output non posso farlo...esce prima!!!


 FINE
      ^....
Sicuro che non ci sia uno spazio?
Nel caso non ci fosse stato uno spazio dopo
"FINE" prova ad eliminare bye.

 FINE >controllo.out 2>&1
Casomai: 
ftp -n >controllo.out 2>&1 <<FINE


ho risolto!
Il problema non era negli spazi dopo, ma in quelli prima!
Ho dovuto togliere tutti gli spazi o i tabs che avevo inserito per via dell'
indentatura, non pensavo fossero dannosi...
Tipo, "FINE" era un tabs a destra, l'ho allineato al margine sinitro cosě
come tutto quello che veniva dopo ed ha funzionato...
Ne ho lette di guide sullo shell scripting ma mai nessuna parlava degli
spazi prima...


 parlava degli spazi prima...
Mi pare ovvio: uno spazio prima si vede.

 spazi prima...
non penso che tu abbia letto molto.  tra le altre cose, "man bash"
spiega anche come fare per l'indenting con spazi e/o tabs:
,-----
|        <<[-]word
|                here-document
|        delimiter
| 
| ...
|
| If the redirection operator is <<-, then all leading tab characters are
| stripped from input lines and  the  line  containing  delimiter.   This
| allows  here-documents within shell scripts to be indented in a natural
| fashion.
`-----
-- 
  Maurizio Loreti    
ROT13:ybe...@cq.vasa.vg
    |  (@_
Un. of Padova, Dept. of Physics, Padova, Italy  |  //\
 
http://www.pd.infn.it/~loreti/mlo.html
      |  V_/_


Giusto, grazie. Il mio script di refererimento girava su Solaris e usava
la vecchia sintassi.



Leggere ho letto, più che altro scopro che non ho letto ciò che mi serviva
realmente


 (tralasciando il prima e il dopo):
ma usare wput? :-)