Seznami proxy v Bash curl: odstranitev končnega CR iz vrstic CRLF
Berite URL proxy vrstico za vrstico v Bashu in pred posredovanjem vrednosti curlu odstranite en končni CR iz datotek CRLF.
Vrstica, kopirana iz datoteke CRLF, je lahko videti kot proxy.example:8080, čeprav se spremenljivka v resnici konča z znakom za vrnitev vozička. Če spremenljivko date v narekovaje, ta znak ostane; ne odstrani ga.
Za datoteko Bash z enim celotnim URL proxyja na vrstico:
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
Uporabite vnose, kot je http://proxy.example:8080; seznam proxyjev HTTP ponuja javne naslove-kandidate za tako oblikovanje. read odstrani ločilo nove vrstice; razširitev pripone odstrani en končni CR, če obstaja. Pogoj obdela tudi zadnjo neprazno vrstico brez nove vrstice.
IFS= prepreči delitev polj med read, -r pa ohrani dobesedne poševnice nazaj. Nato dvojni narekovaji posredujejo dobljeni URL kot en argument curl. Izogibajte se ponavljanju po izhodu zamenjave ukazov: delitev besed v lupini lahko spremeni meje zapisov datoteke, preden jih curl vidi.
To normalizira konce vrstic. Ne odpravi napačnega protokola poslušanja, manjkajoče končne točke ali nedosegljive storitve.