bash - 尝试发送几个文件时出现 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
解决方案
我建议使用for
,我认为-q
在这里使用 grep 选项是不必要的:
for var in $(grep example ./abc.txt); do
your_code_here
done
这里var
每次都会包含文件名。
推荐阅读
- firebase - 被部署在 Firebase Functions 上的快速服务器的 CORS 策略阻止,即使定义了 cors
- python - 从一个视频中重建 Veritasium 的情节
- android - 检查我的 Android 设备相机是否支持 HDR
- reactjs - 元素访问表达式应该有一个参数.ts(1011)
- google-cloud-platform - 为什么我在部署虚拟机或购买域时没有消耗我在谷歌云中的免费积分,这是否意味着我的卡正在收费?
- google-cloud-platform - 在欧洲 (EU) 使用 bigquery 数据时应使用哪个数据流区域
- swiftui - 在 iOS WidgetKit 小部件中右对齐 Text(Date(), style: .timer) 文本
- android - 如何从 APK 转储文件?
- python - 如何在列表中添加所有相同的浮点值,然后将这些值放在新列表中
- android - Android Java FCM 不生成令牌