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

For en Bash-fil som inneholder én komplett 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 tilbyr offentlige adresser som kan formateres på denne måten. read fjerner linjeskiftavgrenseren; suffiksutvidelsen fjerner én etterfølgende CR hvis den finnes. Betingelsen håndterer også en siste ikke-tom linje uten linjeskift.

IFS= forhindrer feltdeling under read, og -r bevarer bokstavelige omvendte skråstreker. Deretter overfører doble anførselstegn den resulterende URL-en som ett curl-argument. Unngå å iterere over utdata fra kommandosubstitusjon: orddelingen i skallet kan endre postgrensene i filen før curl ser dem.

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

Relaterte artikler