Bash curl-proxylister: fjern efterfølgende CR fra CRLF-linjer
Læs proxy-URL'er linje for linje i Bash, og fjern ét efterfølgende CR fra CRLF-filer, før værdien sendes til curl.
En linje kopieret fra en CRLF-fil kan se ud som proxy.example:8080, mens variablen i virkeligheden slutter med et carriage return. At sætte variablen i anførselstegn bevarer tegnet; det fjerner det ikke.
Til en Bash-fil med én komplet proxy-URL pr. 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
Brug poster som http://proxy.example:8080; HTTP-proxylisten leverer offentlige adressekandidater, der kan formateres sådan. read fjerner linjeskiftstegnet; suffiksudvidelsen fjerner ét efterfølgende CR, hvis det findes. Betingelsen behandler også en sidste ikke-tom linje uden linjeskift.
IFS= forhindrer feltopdeling under read, og -r bevarer bogstavelige omvendte skråstreger. Derefter sender dobbelte anførselstegn den resulterende URL som ét curl-argument. Undgå at iterere over output fra kommando substitution: shell-ordopdeling kan ændre filens postgrænser, før curl ser dem.
Dette normaliserer linjeafslutninger. Det retter ikke en forkert lytteprotokol, et manglende endepunkt eller en utilgængelig tjeneste.