0

我试着这样做

 #!/bin/bash

 ftp "$HOST"$3"/"$2"/" <<EOD
        #toggle Interactive mode
        prompt off
        lcd $5"/"$4
        mget "$4"*
        exit
 EOD

我收到以下错误

语法错误:文件意外结束

当我将其更改为或任何其他可能性时

ftp "$HOST"$3"/"$2"/" <<<EOD
            #toggle Interactive mode
            prompt off
            lcd $5"/"$4
            mget "$4"*
            exit
     EOD

我明白了

./download.sh: line 31: 87621 Segmentation fault: 11  ftp "$HOST"$3"/"$2"/" <<< EOD
./download.sh: line 20: prompt: command not found
./download.sh: line 21: lcd: command not found
./download.sh: line 22: mget: command not found

我不知道如何解决这个问题。我该怎么办 O_O

4

2 回答 2

2

在我的 Mac 上,分段错误是由脚本中的注释产生的。删除带有尾随 # 的行将使其工作。

于 2014-06-24T10:40:36.630 回答
0

许多交互式命令并不能很好地处理管道输入。也许试试http://www.columbia.edu/kermit/ftpscripts.html

也就是说,许多其他人似乎已经成功地完成了你正在做的事情(例如http://www.unix.com/unix-advanced-expert-users/4189-automated-ftp.html),所以也许你只是有报价问题?尝试将命令 ( ftp "$HOST"$3"/"$2"/") 更改为只是cat查看 shell 是否正确传递 here-doc 给它?

如果您最终需要提供密码,这也可以提供洞察力:http: //www.stratigery.com/scripting.ftp.html

于 2013-08-06T16:46:10.773 回答