无法在bash脚本中运行镜像命令

时间:2011-06-24 20:45:25

标签: bash ftp

由于某种原因,我无法让最后一行工作。它离开我在ftp user@server.org:〜>提示。有什么建议吗?

#!/bin/bash
echo "This will sync the background_docs folder"
lftp ftp://user:pass@server  
mirror -r background_docs --only-missing -e

2 个答案:

答案 0 :(得分:5)

我猜你想让lftp运行最后一行,

mirror -r background_docs --only-missing -e

正确?

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

您可能想要的是使用lftp的{​​{1}}选项,因此:

-e cmd

答案 1 :(得分:0)

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

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

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