Uma linha copiada de um arquivo CRLF pode parecer proxy.example:8080 enquanto a variável na verdade termina com um retorno de carro. Colocar a variável entre aspas preserva esse caractere; não o remove.

Para um arquivo Bash com um URL de proxy completo por linha:

target='https://api.example/'
while IFS= read -r proxy || [ -n "$proxy" ]; do
    proxy=${proxy%$'\r'}
    if [ -z "$proxy" ]; then
        continue
    fi
    curl --proxy "$proxy" --max-time 10 --url "$target"
done < ProxyList.txt

Use entradas como http://proxy.example:8080; a lista de proxy HTTP fornece endereços públicos candidatos para formatar assim. read remove o delimitador de nova linha; a expansão de sufixo remove um CR final se houver. A condição também processa uma última linha não vazia sem nova linha.

IFS= evita a divisão de campos durante o read, e -r preserva as barras invertidas literais. Depois, as aspas duplas passam o URL resultante como um único argumento do curl. Evite iterar sobre a saída da substituição de comandos: a divisão de palavras do shell pode alterar os limites de registro do arquivo antes que o curl os veja.

Isso normaliza os fins de linha. Não corrige um protocolo de escuta errado, um endpoint ausente ou um serviço inacessível.

Artigos relacionados