Bash curl tarpinių serverių sąrašai: pašalinti baigiamąjį CR iš CRLF eilučių
Skaitykite tarpinio serverio URL po vieną eilutę Bash ir prieš perduodami reikšmę curl pašalinkite vieną baigiamąjį CR iš CRLF failų.
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.