Una línea copiada de un archivo CRLF puede parecer proxy.example:8080 mientras la variable en realidad termina con un retorno de carro. Poner la variable entre comillas conserva ese carácter; no lo elimina.

Para un archivo Bash con una URL de proxy completa por línea:

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 entradas como http://proxy.example:8080; la lista de proxy HTTP ofrece direcciones públicas candidatas para formatearlas así. read elimina el delimitador de salto de línea; la expansión de sufijo elimina un CR final si existe. La condición también procesa una última línea no vacía sin salto de línea.

IFS= evita la división de campos durante read, y -r conserva las barras invertidas literales. Después, las comillas dobles pasan la URL resultante como un solo argumento de curl. Evita iterar sobre la salida de la sustitución de comandos: la división de palabras del shell puede alterar los límites de registro del archivo antes de que curl los vea.

Esto normaliza los finales de línea. No corrige un protocolo de escucha incorrecto, un extremo ausente ni un servicio inalcanzable.

Artículos relacionados