【问题标题】:Problem with if loop when trying send a few files尝试发送几个文件时出现 if 循环问题
【发布时间】:2019-04-17 14:47:42
【问题描述】:

我需要向 FTP 服务器发送一些文件,但以下脚本只运行一次,即使文档中有更多条目具有字符串“example”。在 /abc.txt 我有要发送到 FTP 服务器的文件的路径。

#!/bin/sh

if grep -q example "/abc.txt" ; 
then
var=$( cat /abc.txt )
HOST='X.X.X.X'
USER='USER'
PASSWD='PASSWORD'
cd $var
FILE='./*.txt'

ftp -nv $HOST > /abc.log.txt <<ENDSCRIPT
quote USER $USER
quote PASS $PASSWD
passive
put $FILE
bye
quit
ENDSCRIPT
echo $FILE
sed -i '1d' "/abc.txt"
else
    echo "error"
fi

【问题讨论】:

  • 脚本似乎包含许多错误假设。如果您解释了脚本的逻辑以及您期望或希望发生的事情,这将有助于我们回答。没有做你想做的事情的代码通常是解释你想做的事情的糟糕方式。
  • 由于您的脚本中没有一个显式循环,您如何期望它运行多次?
  • 当然 :) 谢谢你的帮助我在 if 条件之前添加了 while 循环

标签: bash loops ftp


【解决方案1】:

我推荐使用for,我认为这里不需要为grep 使用-q 选项:

for var in $(grep  example ./abc.txt); do
       your_code_here
done

这里var每次都会包含文件名。

【讨论】:

猜你喜欢
  • 2021-03-16
  • 1970-01-01
  • 2022-01-12
  • 2021-02-27
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多