Seznamy proxy v Bash curl: odstranění koncového CR z řádků CRLF
Čtěte URL proxy řádek po řádku v Bash a před předáním hodnoty do curl odstraňte jeden koncový CR ze souborů CRLF.
Řádek zkopírovaný ze souboru CRLF může vypadat jako proxy.example:8080, zatímco proměnná ve skutečnosti končí znakem návratu vozíku. Uzavření proměnné do uvozovek tento znak zachová; neodstraní ho.
Pro soubor Bash obsahující jednu úplnou URL proxy na řádek:
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žívejte položky jako http://proxy.example:8080; seznam HTTP proxy nabízí veřejné adresy-kandidáty, které tak lze naformátovat. read odstraní oddělovač nového řádku; rozšíření přípony odstraní jeden koncový CR, pokud existuje. Podmínka také zpracuje poslední neprázdný řádek bez nového řádku.
IFS= brání dělení polí během read a -r zachovává doslovná zpětná lomítka. Dvojité uvozovky pak předají výslednou URL jako jeden argument curl. Vyhněte se iteraci přes výstup substituce příkazů: dělení slov v shellu může změnit hranice záznamů souboru dřív, než je curl uvidí.
Toto normalizuje konce řádků. Neopravuje špatný protokol naslouchání, chybějící koncový bod ani nedostupnou službu.