Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用变量删除具有LFTP的文件_Linux_Bash_Shell_Ftp_Lftp - Fatal编程技术网

Linux 使用变量删除具有LFTP的文件

Linux 使用变量删除具有LFTP的文件,linux,bash,shell,ftp,lftp,Linux,Bash,Shell,Ftp,Lftp,我试图使用LFTP从我的shell scrip中的FTP服务器中删除一个文件,但由于某些原因,它不会使用我的变量,而是将它们作为文本 守则: USERNAME="theuser" PASSWORD="verygoodpassword" SERVER="example.com" BACKUPDIR="thebackups" FILETODELETE="uselessfile.obsolete" lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u

我试图使用LFTP从我的shell scrip中的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

+1关于问题a。格式很好,b。明确说明目标,c。O.P.迄今为止所做工作的清晰解释。祝你好运,继续发帖。