2012-03-19 42 views
6

LFTP kullanarak kabuk komutumdaki bir FTP sunucusundaki bir dosyayı silmeye çalışıyorum, ancak bazı nedenler değişkenlerimi kullanmaz ve bunları birer sözcük olarak alır.Değişkenler kullanarak LFTP ile bir dosyayı silme

kodu:

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

Ama bunun yerine çalıştırır:

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

Ve bulamıyorum çünkü ben çalıştırıldığı yapmak istiyorum ne

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

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

FTP sunucusunda hazır dosya "/ $ {BACKUPDIR}/$ {FILETODELETE}" ve şikayet ediyor.

Neyi yanlış yapıyorum ???

Şerefe!

+2

+1, bir çalışacaktır. iyi biçimlendirilmiş, b. Hedefin açık bir şekilde açıklanması, c. O.P.'nin çalışmalarını net bir şekilde açıklamıştı. İyi şanslar ve yayınlamaya devam et. – shellter

cevap

12

Bunun nedeni, çift tırnak yerine basit alıntı kullanmanızdır.

Değişim bu ve soru için

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

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

Teşekkür ederim bayım! – Svante

+0

Rica ederim! (Cevabı kabul etmeyi unutmayın ;-)) –