使用variables使用LFTP删除文件

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

代码:

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服务器上find文字文件“/ $ {BACKUPDIR} / $ {FILETODELETE}”,因此抱怨。

我究竟做错了什么???

干杯!

那是因为你使用简单的引号而不是双引号。

改变这一点,将工作

 USERNAME="theuser" PASSWORD="verygoodpassword" SERVER="example.com" BACKUPDIR="thebackups" FILETODELETE="uselessfile.obsolete" lftp -e "rm /${BACKUPDIR}/${FILETODELETE}; bye" -u $USERNAME,$PASSWORD $SERVER