Řá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.

Související články