使用变量删除LFTP文件

时间:2012-03-19 15:55:01

标签: linux bash shell ftp lftp

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

代码:

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

因为它无法找到文字文件" / $ {BACKUPDIR} / $ {FILETODELETE}"在FTP服务器上并因此抱怨。

我做错了什么???

干杯!

1 个答案:

答案 0 :(得分:13)

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

更改此内容并将正常工作

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

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