Списки прокси в Bash curl: удаление завершающего CR из строк CRLF
Читайте URL прокси построчно в Bash и удаляйте один завершающий CR из файлов CRLF перед передачей значения в curl.
Строка, скопированная из файла 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 их увидит.
Это нормализует окончания строк. Это не исправляет неверный протокол прослушивания, отсутствующую конечную точку или недоступный сервис.