curl 在 bash 循环中不起作用

curl 在 bash 循环中不起作用

我在单个 bash 文件中运行此命令,将数据发布到 url 并获取响应

curl  -s -X  POST $url -d "username=username"

它输出响应主体。一切都很好,但我想自动执行此任务,因此我在名为 urls.txt 的文件中保存了许多 URL,如下所示:

https://url1.com
https://url2.com
and so on...

要循环文件中的所有行(url),我运行此脚本

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST $p -d "username=username" >> output.txt
done < urls.txt

我什至尝试使用硬编码的网址运行循环,但它仍然不起作用:

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST http://manual.url -d "username=username" >> output.txt
done < urls.txt

但我没有保存或显示任何输出。我不知道这是为什么。有任何想法吗?我不能以循环方式运行curl 吗?

答案1

您将这些行读入名为 的变量中p,但此后不会使用该变量。

我会这样做:

while IFS='' read -r url || [ -n "$url" ]; do
    echo "URL: >>$url<<"
    curl -s -X  POST $url -d "username=username" >> output.txt
done < urls.txt

相关内容