Удаление файла с помощью LFTP с использованием переменных - PullRequest
6 голосов
/ 19 марта 2012

Я пытаюсь удалить файл с 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 Ответ

13 голосов
/ 19 марта 2012

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

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

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

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