我在单个 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