En linje kopiert fra en CRLF-fil kan se ut som proxy.example:8080 mens variabelen faktisk slutter med en carriage return. Å sette variabelen i anførselstegn bevarer tegnet; det fjerner det ikke.

For en Bash-fil med én fullstendig proxy-URL per linje:

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

Bruk oppføringer som http://proxy.example:8080; HTTP-proxylisten gir offentlige adressekandidater som kan formateres slik. read fjerner linjeskifttegnet; suffiksutvidelsen fjerner én etterfølgende CR hvis den finnes. Betingelsen behandler også en siste ikke-tom linje uten linjeskift.

IFS= forhindrer feltdeling under read, og -r bevarer bokstavelige omvendte skråstreker. Deretter sender doble anførselstegn den resulterende URL-en som ett curl-argument. Unngå å iterere over utdata fra kommandosubstitusjon: skallets orddeling kan endre filens postgrenser før curl ser dem.

Dette normaliserer linjeslutt. Det retter ikke en feil lyttende protokoll, et manglende endepunkt eller en utilgjengelig tjeneste.

Relaterte artikler