Μια γραμμή που αντιγράφηκε από αρχείο 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.

Αυτό κανονικοποιεί τις καταλήξεις γραμμών. Δεν διορθώνει λάθος πρωτόκολλο ακρόασης, απούσα τελική διεύθυνση ή μη προσβάσιμη υπηρεσία.

Σχετικά άρθρα