Рядок, скопійований із файлу 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 їх побачить.

Це нормалізує закінчення рядків. Це не виправляє неправильний протокол прослуховування, відсутню кінцеву точку або недоступний сервіс.

Схожі статті