Bash curl starpniekserveru saraksti: noņemt beigu CR no CRLF rindām
Lasiet starpniekservera URL rindu pa rindai Bash un pirms vērtības nodošanas curl noņemiet vienu beigu CR no CRLF failiem.
No CRLF faila nokopēta rinda var izskatīties kā proxy.example:8080, lai gan mainīgais patiesībā beidzas ar karietes atgriešanas rakstzīmi. Mainīgā iekļaušana pēdiņās saglabā šo rakstzīmi; tā to nenoņem.
Bash failam, kurā katrā rindā ir viens pilns starpniekservera 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
Izmantojiet ierakstus, piemēram, http://proxy.example:8080; HTTP starpniekserveru saraksts piedāvā publiskas adreses, ko var formatēt šādi. read noņem jaunās rindas atdalītāju; sufiksa paplašinājums noņem vienu beigu CR, ja tāds ir. Nosacījums apstrādā arī pēdējo ne tukšo rindu bez jaunas rindas.
IFS= novērš lauku sadalīšanu read laikā, un -r saglabā burtiskās slīpsvītras. Pēc tam dubultās pēdiņas nodod iegūto URL kā vienu curl argumentu. Izvairieties atkārtot komandu aizstāšanas izvadi: čaulas vārdu sadalīšana var mainīt faila ierakstu robežas pirms curl tās ierauga.
Tas normalizē rindu galus. Tas neizlabo nepareizu klausīšanās protokolu, trūkstošu galapunktu vai nesasniedzamu pakalpojumu.