Bash curl -välityspalvelinlistat: poista CRLF-rivien lopusta CR
Lue välityspalvelimen URL-osoitteet rivi kerrallaan Bashissa ja poista yksi lopussa oleva CR CRLF-tiedostoista ennen arvon välittämistä curlille.
CRLF-tiedostosta kopioitu rivi voi näyttää riviltä proxy.example:8080, vaikka muuttuja päättyy todellisuudessa vaununpalautukseen. Muuttujan lainaaminen säilyttää tämän merkin; se ei poista sitä.
Bash-tiedostolle, jossa on yksi täydellinen välityspalvelimen URL per rivi:
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
Käytä merkintöjä kuten http://proxy.example:8080; HTTP-välityspalvelinlista tarjoaa julkisia osoite-ehdokkaita muotoiltavaksi näin. read poistaa rivinvaihtoerottimen; jälkiliitteen laajennus poistaa yhden lopussa olevan CR:n, jos sellainen on. Ehto käsittelee myös viimeisen ei-tyhjän rivin ilman rivinvaihtoa.
IFS= estää kenttien jakamisen readin aikana, ja -r säilyttää kirjaimelliset kenoviivat. Sitten kaksoislainausmerkit välittävät tuloksena olevan URL:n yhtenä curl-argumenttina. Vältä toistamista komentosubstituution tulosteen yli: kuoren sanajako voi muuttaa tiedoston tietueiden rajoja ennen kuin curl näkee ne.
Tämä normalisoi rivinloput. Se ei korjaa väärää kuunteluprotokollaa, puuttuvaa päätepistettä tai tavoittamattomissa olevaa palvelua.