2012-03-19 8 views
6

Tôi đang cố gắng xóa một tập tin từ một máy chủ FTP trong trình bao bằng LFTP, nhưng vì một lý do nào đó nó sẽ không sử dụng các biến của tôi và lấy chúng làm chữ.Xóa một tập tin bằng LFTP sử dụng các biến

Mã:

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

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

Những gì tôi muốn nó làm là chạy:

lftp -e 'rm /thebackups/uselessfile.obsolete; bye' -u theuser,verygoodpassword example.com 

Nhưng thay vào đó nó chạy:

lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u theuser,verygoodpassword example.com 

Và nguyên nhân nó không thể tìm thấy tệp theo nghĩa đen "/ $ {BACKUPDIR}/$ {FILETODELETE}" trên máy chủ FTP và than phiền như vậy.

Tôi đang làm gì sai ???

Chúc mừng!

+2

+1 cho câu hỏi, a. được định dạng tốt, b. giải thích rõ ràng về mục tiêu, c. giải thích rõ ràng về công việc O.P. đã làm cho đến nay. Chúc may mắn và tiếp tục đăng bài. – shellter

Trả lời

12

Đó là vì bạn đang sử dụng báo giá đơn giản thay vì dấu ngoặc kép.

Thay đổi này và sẽ làm việc

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

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

Xin cảm ơn các bạn! – Svante

+0

Bạn được chào đón! (Đừng quên chấp nhận câu trả lời ;-)) –