Λίστες διαμεσολαβητή Bash curl: αφαίρεση του τελικού CR από γραμμές CRLF
Διαβάστε τα URL διαμεσολαβητή γραμμή προς γραμμή στο Bash και αφαιρέστε ένα τελικό CR από αρχεία CRLF πριν περάσετε την τιμή στο curl.
Μια γραμμή που αντιγράφηκε από αρχείο CRLF μπορεί να μοιάζει με proxy.example:8080, ενώ η μεταβλητή στην πραγματικότητα τελειώνει με επιστροφή καρότσας. Η τοποθέτηση της μεταβλητής σε εισαγωγικά διατηρεί αυτόν τον χαρακτήρα· δεν τον αφαιρεί.
Για ένα αρχείο Bash που περιέχει ένα πλήρες 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
Χρησιμοποιήστε καταχωρίσεις όπως http://proxy.example:8080· η λίστα διαμεσολαβητών HTTP παρέχει δημόσιες διευθύνσεις-υποψήφιες για μορφοποίηση με αυτόν τον τρόπο. Το read αφαιρεί τον διαχωριστή νέας γραμμής· η επέκταση επιθέματος αφαιρεί ένα τελικό CR εάν υπάρχει. Η συνθήκη επεξεργάζεται επίσης μια τελευταία μη κενή γραμμή χωρίς νέα γραμμή.
Το IFS= εμποδίζει τον διαχωρισμό πεδίων κατά το read, και το -r διατηρεί τις κυριολεκτικές ανάστροφες καθέτους. Στη συνέχεια τα διπλά εισαγωγικά περνούν το URL που προκύπτει ως ένα όρισμα curl. Αποφύγετε την επανάληψη πάνω στην έξοδο αντικατάστασης εντολών: ο διαχωρισμός λέξεων του κελύφους μπορεί να αλλάξει τα όρια εγγραφών του αρχείου πριν τα δει το curl.
Αυτό κανονικοποιεί τις καταλήξεις γραμμών. Δεν διορθώνει λάθος πρωτόκολλο ακρόασης, απούσα τελική διεύθυνση ή μη προσβάσιμη υπηρεσία.