Списки проксі в 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 їх побачить.
Це нормалізує закінчення рядків. Це не виправляє неправильний протокол прослуховування, відсутню кінцеву точку або недоступний сервіс.