首页 > 解决方案 > Shell 脚本:如何使用 cURL 或 wGet 从列表中调用 URL?我只能让最后一行工作!帮助!:)

问题描述

Shell Script 和 cURL/wGet 的一些帮助?

我需要从一个文件中调用多个 URL。

在测试时,我在该文件中只使用了 3 行,意思是我有 3 个 URL。

第一步,我创建文件,然后使用下面的块通过 cURL 或 wGet 逐行调用读取它:

cat ${vMyFile} | while read vMyRow #I cat the file and read it on a "While" structure
                 do
                 echo curl -f ${vMyRow} >>${vMyLogFile} #I use cURL to call the rows with the URL`s

该脚本运行良好,日志文件 (vMyLogFile) 显示一切正常。“卷曲”调用了所有 3 个 URL,没有错误但是......我只能让最后一行(URL)工作。

当我调用这些 URL 时,一项服务被激活,只有第 3 行(最后一个)的服务器被激活。:(

如果我从日志文件中获取 cURL 第 1 行和第 2 行并通过终端运行它,则该服务已成功激活。

我已经尝试在 cURL 之间使用 SLEEP 和 WAIT,但仍然无法使其正常工作。

在同一进程中再次调用 cURL 请求之前,我必须使用“CLOSE”或“END”吗?

标签: shellunixcurlwget

解决方案


我需要从一个文件中调用多个 URL。

wget具有此类用例的选项,即-i. 如果未指定其他选项,则后面应为每行包含一个 URL 的文件名,因此,如果此文件被命名为示例,urls.txt最简单的用法是

wget -i urls.txt

如果您想了解更多有关-i行为wget的信息,请参阅手册页


推荐阅读