Una riga copiata da un file CRLF può sembrare proxy.example:8080 mentre la variabile in realtà termina con un ritorno carrello. Racchiudere la variabile tra virgolette conserva quel carattere; non lo rimuove.

Per un file Bash che contiene un URL di proxy completo per riga:

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

Usa voci come http://proxy.example:8080; la lista di proxy HTTP fornisce indirizzi pubblici candidati da formattare in questo modo. read rimuove il delimitatore di fine riga; l'espansione del suffisso rimuove un CR finale se presente. La condizione elabora anche un'ultima riga non vuota senza fine riga.

IFS= impedisce la suddivisione in campi durante read, e -r preserva le barre rovesciate letterali. Le virgolette doppie passano poi l'URL risultante come un unico argomento di curl. Evita di iterare sull'output della sostituzione di comandi: la suddivisione in parole della shell può alterare i confini dei record del file prima che curl li veda.

Questo normalizza i fine riga. Non corregge un protocollo di ascolto errato, un endpoint mancante o un servizio irraggiungibile.

Articoli correlati