Een regel die uit een CRLF-bestand is gekopieerd kan eruitzien als proxy.example:8080, terwijl de variabele in werkelijkheid eindigt met een carriage return. De variabele tussen aanhalingstekens zetten behoudt dat teken; het verwijdert het niet.

Voor een Bash-bestand met één volledige proxy-URL per regel:

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

Gebruik regels zoals http://proxy.example:8080; de HTTP-proxylijst levert openbare adreskandidaten die zo kunnen worden opgemaakt. read verwijdert de regeleindescheiding; de suffixuitbreiding verwijdert één laatste CR als die aanwezig is. De voorwaarde verwerkt ook een laatste niet-lege regel zonder regeleinde.

IFS= voorkomt veldsplitsing tijdens read, en -r behoudt letterlijke backslashes. Dubbele aanhalingstekens geven de resulterende URL vervolgens als één curl-argument door. Vermijd itereren over de uitvoer van opdrachtvervanging: woordsplitsing door de shell kan de recordgrenzen van het bestand wijzigen voordat curl ze ziet.

Dit normaliseert regeleinden. Het lost een verkeerd luisterprotocol, een ontbrekend eindpunt of een onbereikbare dienst niet op.

Gerelateerde artikelen