Após várias iterações ...
for url in $(cat links.txt); do
timeout 10 lynx "$url"
done
O Lynx está bloqueando (e tem que estar funcionando), então dormir não funciona adequadamente e ele também tenta prender stdin, o que torna as coisas da tubulação "interessantes" difíceis. Veja aqui as linhas de iteração em um arquivo .
O Lynx pode ser um pouco chato com seus prompts para permitir cookies. Você pode alterar suas configurações se for um problema ou pode passar o sinalizador -accept_all_cookies
da seguinte forma:
for url in $(cat links.txt); do
timeout 10 lynx -accept_all_cookies "$url"
done
Hoje aprendi sobre o comando timeout
, por isso estou feliz.
Para imprimir um status no final, a única maneira que posso ver como verificar o URL é ok separadamente, assim:
for url in $(cat links.txt); do
timeout 10 lynx -accept_all_cookies "$url"
if [[ $(curl -o /dev/null --silent --head --write-out '%{http_code}\n' "$url") -eq "200" ]]; then
echo "Getting $url successful"
else
echo "Getting $url unsuccessful"
fi
done