linux - 使用 LFTP 使用变量删除文件

标签 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

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

我做错了什么???

干杯!

最佳答案

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

改变这个并且会起作用

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

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

关于linux - 使用 LFTP 使用变量删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773454/

相关文章:

linux - 在循环命令期间下划线 _ 出现在 $i 之后时出错

bash - 在 bash shell 中添加文件大小

linux - gcc make 安装错误

regex - 如果第一个空格是 2 个空格,则在文件中将其设置为 1

bash - 如何使用 args 和 echo 命令在 sed 命令中转义双引号?

BASH 语法错误 - [ : missing `]'

linux - shell bash 脚本 - 上传一个大的 tar 文件,重试?

linux - 无法使用 bash 设置环境变量

linux - 在 Linux 操作系统中更新时自动刷新打开图形(例如显示在 Imagemagick 上)

linux - 是否有总结 bash 脚本的手册页?