2012-03-19 115 views
6

我想使用LFTP从我的shell脚本中的FTP服务器中删除文件,但出于某种原因,它不会使用我的变量,并将它们作为文字。使用变量使用LFTP删除文件

代码:

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

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

我想什么它做的是运行:

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

但是,相反它运行:

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

的原因无法找到与在FTP服务器上的文字文件“/ $ {BACKUPDIR}/$ {FILETODELETE}”并且因此抱怨。

我在做什么错?

干杯!

+2

+1的问题,一个。格式良好,b。明确的目标解释,c。 O.P.迄今为止所做的工作的明确解释。祝你好运,并继续发布。 – shellter 2012-03-19 16:22:54

回答

12

这是因为您使用简单的引号而不是双引号。

改变这一点,将工作

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

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

谢谢你亲切的先生! – Svante 2012-03-19 16:06:25

+0

不客气! (不要忘记接受答案;-)) – 2012-03-19 16:08:17