首页 > 解决方案 > 尝试发送几个文件时出现 if 循环问题

问题描述

我需要向 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

标签: bashloopsftp

解决方案


我建议使用for,我认为-q在这里使用 grep 选项是不必要的:

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

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


推荐阅读