2011-06-24 61 views

回答

5

我猜你想LFTP运行最后一行,

mirror -r background_docs --only-missing -e 

吧?

如果是这样,你必须告诉它这样做。正如它写的,脚本只是启动lftp,等待它完成,然后才会尝试执行最后一行。

你可能就要什么是使用lftp-e cmd选项,因为这样的:

#!/bin/bash 
echo "This will sync the background_docs folder" 
lftp -e "mirror -r background_docs --only-missing -e" ftp://user:[email protected] 
+0

+1给出了可以工作的实际'lftp'命令。 :) – sarnold

+0

这工作,现在我只需要等待几分钟就可以接受。 – Kelbizzle

0

你已经写了一个shell脚本。每行都在shell中作为新命令执行。当您点击^D关闭lftp时,它会尝试运行mirror命令。 (它甚至可能存在于您的系统上。)

如果要以这种方式向程序发送命令,请查看expect(1)工具。甚至还有一种学习模式(这比我手写的expect脚本给了我更好的成功)。

但是也许你的lftp(1)命令可以用命令行参数来处理呢?那会更可靠。

+0

预期工具也会有效。因为出来这个系统是使用cygwin的窗口。 – Kelbizzle