2013-01-02 35 views
0

我試圖運行一個腳本,在我的FTP服務器上創建最新文件。使用LFTP的shell腳本獲取持續文件

file=`ls -t -r | tail -n 1` 

sudo lftp <<FTP 
open $hostname 
user $username $password 
cd $folder 
get $file 
bye 
FTP 

但是文件變量中的ls命令在我的本地機器中執行。怎麼了?謝謝。

+0

你用'$ arquivo'來混淆'$ file'嗎? – Jens

+0

是的,你說得對,'ls' * is *正在你的本地機器上執行。你需要運行一個初始的ftp,其中你發出的唯一命令是'cd ... AND ls',然後你需要捕獲那個輸出(就像你對文件所做的那樣),然後你需要解析這個多重命令,行變量來查找最新的文件並將其存儲爲'file ='。祝你好運。 – shellter

回答

0

使用cls而不是ls將有所幫助。更改get $file

cls -1t|sed -n 1s/^/get\\ /p>/tmp/get 
source /tmp/get 

當心,這個使用文件/tmp/get,不適合用於併發操作。