Rhestrau procs Bash curl: tynnu'r CR olaf o linellau CRLF
Darllenwch URLau procs fesul llinell yn Bash a thynnu un CR olaf o ffeiliau CRLF cyn trosglwyddo'r gwerth i curl.
Gall llinell a gopïwyd o ffeil CRLF edrych fel proxy.example:8080 tra bo'r newidyn mewn gwirionedd yn gorffen â charriage return. Mae rhoi'r newidyn mewn dyfynodau yn cadw'r nod hwnnw; nid yw'n ei dynnu.
Ar gyfer ffeil Bash sy'n cynnwys un URL procs cyflawn fesul llinell:
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
Defnyddiwch gofnodion fel http://proxy.example:8080; mae rhestr procs HTTP yn darparu cyfeiriadau cyhoeddus ymgeisiol i'w fformatio felly. Mae read yn tynnu'r gwahanwr llinell newydd; mae ehangiad ôl-ddodiad yn tynnu un CR olaf os yw'n bresennol. Mae'r amod hefyd yn prosesu llinell olaf nad yw'n wag heb linell newydd.
Mae IFS= yn atal hollti meysydd yn ystod read, ac mae -r yn cadw ôl-slaesau llythrennol. Yna mae dyfynodau dwbl yn trosglwyddo'r URL canlyniadol fel un ddadl curl. Osgoi ailadrodd dros allbwn amnewid gorchmynion: gall hollti geiriau'r plisgyn newid ffiniau cofnodion y ffeil cyn i curl eu gweld.
Mae hyn yn normaleiddio diwedd llinellau. Nid yw'n trwsio protocol gwrando anghywir, pwynt terfyn coll, na gwasanaeth na ellir ei gyrraedd.