Bash curl-proxylister: fjern etterfølgende CR fra CRLF-linjer
Les proxy-URL-er linje for linje i Bash og fjern én etterfølgende CR fra CRLF-filer før verdien sendes til curl.
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.