Une ligne copiée depuis un fichier CRLF peut ressembler à proxy.example:8080 alors que la variable se termine en réalité par un retour chariot. Mettre la variable entre guillemets conserve ce caractère ; cela ne le supprime pas.

Pour un fichier Bash contenant une URL de proxy complète par ligne :

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

Utilisez des entrées comme http://proxy.example:8080 ; la liste de proxy HTTP fournit des adresses publiques candidates à formater ainsi. read supprime le délimiteur de fin de ligne ; l'expansion de suffixe supprime un CR final s'il est présent. La condition traite aussi une dernière ligne non vide sans saut de ligne.

IFS= empêche la découpe en champs pendant read, et -r préserve les barres obliques inverses littérales. Les guillemets doubles transmettent ensuite l'URL obtenue comme un seul argument de curl. Évitez d'itérer sur la sortie d'une substitution de commande : la découpe en mots du shell peut modifier les limites d'enregistrement du fichier avant que curl ne les voie.

Cela normalise les fins de ligne. Cela ne corrige pas un protocole d'écoute erroné, un point de terminaison manquant ou un service injoignable.

Articles similaires