BASH:向ftp发送命令并验证状态代码

时间:2013-05-26 12:55:56

标签: bash ftp

我想编写一个在后台运行ftp的bash脚本。我想以某种方式向它发送命令并接收响应。例如,想要运行ftp,然后发送它

user username pass
cd foo
ls
binary
mput *.html

并接收状态代码并验证它们。我试着这样做

tail -n 1 -f in | ftp -n host >> out &

然后读出文件并进行验证。但它不起作用。有人能告诉我正确的方法吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

我运行一组命令,检查输出,然后运行第二组以响应输出。您可以使用here-documents作为命令集,使用command substitution来捕获变量中的输出,例如像这样:

output=$(cat <<EOF | ftp -n host
user username pass
cd foo
ls
binary
mput *.html
EOF
)

if [[ $output =~ "error message" ]]; then
  # do stuff
fi