'n Reël wat uit 'n CRLF-lêer gekopieer is, kan soos proxy.example:8080 lyk terwyl die veranderlike eintlik met 'n CR-karakter eindig. Aanhalingstekens om die veranderlike behou daardie karakter; dit verwyder dit nie.

Vir 'n Bash-lêer met een volledige proksie-URL per reël:

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 inskrywings soos http://proxy.example:8080; die HTTP-proksilys verskaf publieke adreskandidate wat so geformateer kan word. read verwyder die nuwereël-skeier; die agtervoegsel-uitbreiding verwyder een nasleep-CR indien teenwoordig. Die voorwaarde verwerk ook 'n laaste nie-leë reël sonder 'n nuwereël.

IFS= verhoed veldsplitsing tydens read, en -r behou letterlike terugskuinsstrepe. Dubbele aanhalingstekens gee dan die resulterende URL as een curl-argument deur. Vermy iterering oor die uitvoer van opdragvervanging: skulpwoordsplyting kan die lêer se rekordgrense verander voordat curl dit sien.

Dit normaliseer reëleindes. Dit herstel nie 'n verkeerde luisteraarprotokol, ontbrekende eindpunt of onbereikbare diens nie.

Verwante artikels