gpt4 book ai didi

linux - bash | curl | curl 2 个 URL 然后停止

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:03 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的 bash 脚本,该脚本将使用文本文档中的列表并 curl 列表中的每个 URL,以便查看每个 URL 的内容是什么。它允许我 cURL 2 个站点并为其余站点创建文本文档,但它只下载前 2 个站点。我已经设法编写了提取 IP 的脚本,并使用 grep 命令将它们放入单独的文件中。起初我尝试过

#!/bin/bash
for var in `cat host.txt`; do
curl -s $var >> /tmp/ping/html/$var.html
done

我尝试过使用和不使用静音开关。然后我尝试了以下方法:

#!/bin/bash  
for var in `head -2 host.txt`; do
curl $var >> /tmp/ping/html/$var.html
wait
done
for var in `head -4 host.txt | tail -2`; do
curl $var >> /tmp/ping/html/$var.html
done

这将尝试同时执行所有操作,并在 2 后停止

#!/bin/bash  
for var in `head -2 host.txt`; do
curl $var >> /tmp/ping/html/$var.html
done
wait
for var in `head -4 host.txt | tail -2`; do
curl $var >> /tmp/ping/html/$var.html
done

这会做同样的事情,我是 bash 脚本新手,只知道一些基础知识,任何帮助将不胜感激

最佳答案

从简单的开始:验证您实际上是在迭代整个列表:

# This is the recommended way to iterate over the file. See
# http://mywiki.wooledge.org/BashFAQ/001
while read -r var; do
echo "$var"
done < hosts.txt

然后添加对 curl 的调用,检查其退出状态

while read -r var; do
echo "$var"
curl "$var" >> /tmp/ping/html/$var.html || echo "curl failed: $?"
done < hosts.txt

关于linux - bash | curl | curl 2 个 URL 然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12229198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com