0
ftp ipaddress
bin
hash
cd path
get filename
quit

我希望这些行在 shell 脚本中执行,仅在输入用户名和密码后执行第一行,其余行未执行,并且控件卡在 ftp> 提示符处

4

3 回答 3

0

或者,您可以使用 shell“此处”文档:

#!/bin/bash 

ftp -in <<EOS
user pswd
bin
hash
cd path
get filename
quit
EOS

这里的文档通过打开程序的标准输入发送所有内容,就像您在命令行中输入一样。请注意,ftp 客户端可能很挑剔,而且每个客户端似乎都有自己的一套陷阱,因此man ftp可能需要进行一些实验和使用。

看起来这在 Stackoverflow 上已经出现过,您可能想阅读 如何使用 shell 脚本 ftp 多个文件

IHTH

于 2013-02-27T14:10:19.117 回答
0

一旦你的脚本调用了程序ftp,shell 就会失去控制,直到 ftp 程序完成。所以你需要使用一些新技术。一种方法是使用程序expect,您可以在此处获得提示:https ://stackoverflow.com/a/12598169/4323 。另一种方法是使用更“可脚本化”的 FTP 客户端,例如lftp在 Linux 上,它具有特定功能,可以实现您想要的那种脚本化使用。

于 2013-02-27T14:04:36.657 回答
0

如果您想在脚本而不是交互式 shell 中执行此操作,则需要使用非交互式 FTP 客户端。ncftp是您可以查看的一个。

于 2013-02-27T14:05:26.737 回答