Списъци с прокси в 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 да ги види.
Това нормализира краищата на редовете. Не поправя грешен протокол за слушане, липсваща крайна точка или недостъпна услуга.