Zoznamy proxy v Bash curl: odstránenie koncového CR z riadkov CRLF
Čítajte URL proxy riadok po riadku v Bash a pred odovzdaním hodnoty do curl odstráňte jeden koncový CR zo súborov CRLF.
Riadok skopírovaný zo súboru CRLF môže vyzerať ako proxy.example:8080, hoci premenná v skutočnosti končí znakom návratu vozíka. Uzavretie premennej do úvodzoviek tento znak zachová; neodstráni ho.
Pre súbor Bash obsahujúci jednu úplnú URL proxy na riadok:
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
Používajte položky ako http://proxy.example:8080; zoznam HTTP proxy ponúka verejné adresy-kandidátov, ktoré tak možno naformátovať. read odstráni oddeľovač nového riadku; rozšírenie prípony odstráni jeden koncový CR, ak existuje. Podmienka tiež spracuje posledný neprázdny riadok bez nového riadku.
IFS= bráni deleniu polí počas read a -r zachováva doslovné spätné lomky. Dvojité úvodzovky potom odovzdajú výslednú URL ako jeden argument curl. Vyhnite sa iterovaniu cez výstup substitúcie príkazov: delenie slov v shelli môže zmeniť hranice záznamov súboru skôr, než ich curl uvidí.
Toto normalizuje konce riadkov. Neopravuje nesprávny protokol počúvania, chýbajúci koncový bod ani nedostupnú službu.