Удаление файла с LFTP, используя переменные

Я пытаюсь удалить файл с FTP-сервера в моей оболочке, используя lftp, но по какой-то причине он не будет использовать мои переменные и принимает их как литералы.

код:

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 ответов


это потому, что вы используете простую цитату вместо двойных кавычек.

изменить это и будет работать

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

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