Eu preciso verificar uma lista de domínios em paralelo. Então eu estava planejando usar curl
e xargs
.
Isso é check.sh
:
#!/bin/bash
domain=${1?Pass the domain as a parameter}
curl -o /dev/null --silent --write-out "http://$domain/,%{http_code},%{redirect_url}\n" "http://$domain/"
Agora, quando usado uma única vez, funciona:
$ ./check.sh example.com
http://example.com,200,
Se, em vez disso, eu usá-lo em combinação com xargs
, curl
não funciona corretamente e a saída parece quebrada:
$ cat domains.txt | xargs -L1 -P2 ./check.sh
,000,//example.com
,000,//example.org
Este é o arquivo de teste que estou usando ( domains.txt
):
example.com
example.org
Isso também acontece sem -P2
, por isso deve estar relacionado ao modo como as linhas são passadas para o script. Eu também adicionei um echo "$domain"
, mas tudo parece ok.