2012-03-19 120 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