Eilutė, nukopijuota iš CRLF failo, gali atrodyti kaip proxy.example:8080, nors kintamasis iš tikrųjų baigiasi vežimėlio grąžinimo simboliu. Kintamojo įdėjimas į kabutes išsaugo tą simbolį; jis jo nepašalina.

Bash failui, kuriame kiekvienoje eilutėje yra vienas visas tarpinio serverio URL:

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

Naudokite įrašus, tokius kaip http://proxy.example:8080; HTTP tarpinių serverių sąrašas siūlo viešus adresų kandidatus, kuriuos galima taip formatuoti. read pašalina naujos eilutės skyriklį; priesagos išplėtimas pašalina vieną baigiamąjį CR, jei jis yra. Sąlyga taip pat apdoroja paskutinę netuščią eilutę be naujos eilutės.

IFS= neleidžia skaidyti laukų vykdant read, o -r išsaugo pažodinius pasvirusius brūkšnius. Tada dvigubos kabutės perduoda gautą URL kaip vieną curl argumentą. Venkite kartoti per komandų pakeitimo išvestį: apvalkalo žodžių skaidymas gali pakeisti failo įrašų ribas anksčiau, nei curl jas pamatys.

Tai normalizuoja eilučių pabaigas. Tai netaiso neteisingo klausymosi protokolo, trūkstamo galinio taško ar nepasiekiamos paslaugos.

Susiję straipsniai