0

任何人都可以帮助我会出现什么问题?登录名和密码来自 .netrc。, < 在 example.script 之前不起作用

  #!/bin/bash
  HOST='192.163.3.3'
  FILE="a.txt"

  while :; do
      ftp -p -v -i $HOST << example.script >> a.log
      grep -qF "Connected" a.log &&
      grep -qF "File successfully transferred" a.log && break
  done

  exit 0

example.script 包含

 put $FILE
 quit

错误是:

 ./example.sh: line 15: syntax error: unexpected end of file

sh -vx在脚本上使用时得到了这个:

  while :; do
  ftp -p -v -i $HOST < example.script >> a.log
  grep -qF "Connected" a.log &&
  grep -qF "File successfully transferred" a.log && break
  done
  + :
  + ftp -p -v -i 192.163.3.3
  + grep -qF Connected a.log
  grep: a.log: No such file or directory
  + :
  + ftp -p -v -i 192.163.3.3
  + grep -qF Connected a.log
  grep: a.log: No such file or directory
  + :

请注意,此代码修复了问题(使用<而不是<<输入重定向)。脚本文件以exaple.script代替example.script.

4

2 回答 2

2

更改与此处<<无关的此处文档!相反,您的意思是:

ftp -p -v -i $HOST < example.script >> a.log
于 2012-11-30T18:53:57.657 回答
0

您需要关闭您的here-doc

#!/bin/bash
HOST='192.163.3.3'
FILE="a.txt"

while :; do
    ftp -p -v -i $HOST <<EOF example.script >> a.log
    grep -qF "Connected" a.log &&
         grep -qF "File successfully transferred" a.log && break
done
EOF

<<打开一个here-doc

于 2012-11-30T19:06:35.040 回答