这是HTTP状态代码的简单bash脚本
while read url
do
urlstatus=$(curl -o /dev/null --silent --head --write-out '%{http_code}' "${url}" --max-time 5 )
echo "$url $urlstatus" >> urlstatus.txt
done < $1
我正在从文本文件中读取URL,但是一次只能处理一个,占用了太多时间,GNU并行和xargs一次也处理了一行(已测试)
如何处理同时URL以进行处理以改善计时?换句话说,URL文件的线程而不是bash命令的线程(GNU parallel和xargs这样做)
作为用户的答复,此代码可以正常工作,只不过它不处理某些最后的URL
urlstatus=$(curl -o /dev/null --silent --head --write-out '%{http_code}' "${url}" --max-time 5 ) && echo "$url $urlstatus" >> urlstatus.txt &
可能正在添加等待帮助,,,任何建议
在bash中,您可以使用&符号在后台运行程序。例子
for i in {1..100..1}; do
echo $i>>numbers.txt &
done;
编辑:对不起,但您在评论中提出的问题的答案是错误的,所以我只是编辑了答案。建议代码
urlstatus=$(curl -o /dev/null --silent --head --write-out '%{http_code}' "${url}" --max-time 5 ) && echo "$url $urlstatus" >> urlstatus.txt &
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句