2012-03-19 22 views
6

Sto tentando di eliminare un file da un server FTP nello script della shell utilizzando LFTP, ma per qualche motivo non utilizzerà le mie variabili e le prenderò come valori letterali.Eliminazione di un file con LFTP utilizzando le variabili

Il codice:

USERNAME="theuser" 
PASSWORD="verygoodpassword" 
SERVER="example.com" 
BACKUPDIR="thebackups" 
FILETODELETE="uselessfile.obsolete" 

lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u $USERNAME,$PASSWORD $SERVER 

Quello che voglio fare è correre:

lftp -e 'rm /thebackups/uselessfile.obsolete; bye' -u theuser,verygoodpassword example.com 

Ma invece si corre:

lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u theuser,verygoodpassword example.com 

E di causa non riesce a trovare il file letterale "/ $ {BACKUPDIR}/$ {FILETODELETE}" sul server FTP e si lamenta così.

Cosa sto facendo male ???

Cheers!

+2

+1 per la domanda, a. ben formattato, b. chiara spiegazione dell'obiettivo, c. chiara spiegazione del lavoro svolto da O.P. Buona fortuna e continua a postare. – shellter

risposta

12

Questo perché si utilizza la citazione semplice anziché le virgolette doppie.

Modificare questo e lavorerà

USERNAME="theuser" 
PASSWORD="verygoodpassword" 
SERVER="example.com" 
BACKUPDIR="thebackups" 
FILETODELETE="uselessfile.obsolete" 

lftp -e "rm /${BACKUPDIR}/${FILETODELETE}; bye" -u $USERNAME,$PASSWORD $SERVER 
+1

Grazie gentile signore! – Svante

+0

Prego! (Non dimenticare di accettare la risposta ;-)) –