7

我正在尝试使用 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

当然,它在 FTP 服务器上找不到文字文件“/${BACKUPDIR}/${FILETODELETE}”并因此抱怨。

我究竟做错了什么???

干杯!

4

1 回答 1

16

That's because you are using simple quote instead of double quotes.

Change this and will work

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

lftp -e "rm /${BACKUPDIR}/${FILETODELETE}; bye" -u $USERNAME,$PASSWORD $SERVER
于 2012-03-19T15:58:33.197 回答