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命令在我的本地機器中執行。怎麼了?謝謝。
我試圖運行一個腳本,在我的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命令在我的本地機器中執行。怎麼了?謝謝。
使用cls
而不是ls
將有所幫助。更改get $file
到
cls -1t|sed -n 1s/^/get\\ /p>/tmp/get
source /tmp/get
當心,這個使用文件/tmp/get
,不適合用於併發操作。
你用'$ arquivo'來混淆'$ file'嗎? – Jens
是的,你說得對,'ls' * is *正在你的本地機器上執行。你需要運行一個初始的ftp,其中你發出的唯一命令是'cd ... AND ls',然後你需要捕獲那個輸出(就像你對文件所做的那樣),然後你需要解析這個多重命令,行變量來查找最新的文件並將其存儲爲'file ='。祝你好運。 – shellter