Listy proxy w Bash curl: usuwanie końcowego CR z linii CRLF
Czytaj adresy URL proxy wiersz po wierszu w Bashu i usuń jeden końcowy CR z plików CRLF przed przekazaniem wartości do curl.
Wiersz skopiowany z pliku CRLF może wyglądać jak proxy.example:8080, choć zmienna w rzeczywistości kończy się znakiem powrotu karetki. Ujęcie zmiennej w cudzysłowie zachowuje ten znak; nie usuwa go.
Dla pliku Bash zawierającego jeden pełny adres URL proxy w wierszu:
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
Używaj wpisów takich jak http://proxy.example:8080; lista proxy HTTP dostarcza publiczne adresy-kandydatów do takiego formatowania. read usuwa separator nowego wiersza; rozwinięcie sufiksu usuwa jeden końcowy CR, jeśli występuje. Warunek obsługuje też ostatni niepusty wiersz bez nowego wiersza.
IFS= zapobiega dzieleniu pól podczas read, a -r zachowuje dosłowne ukośniki wsteczne. Następnie podwójne cudzysłowy przekazują wynikowy adres URL jako jeden argument curl. Unikaj iterowania po wyniku podstawienia poleceń: dzielenie słów przez powłokę może zmienić granice rekordów pliku, zanim curl je zobaczy.
To normalizuje końce wierszy. Nie naprawia błędnego protokołu nasłuchiwania, brakującego punktu końcowego ani nieosiągalnej usługi.