Bash curl прокси тізімдері: CRLF жолдарының соңғы CR таңбасын жою
Bash ішінде прокси URL мекенжайларын жол-жолымен оқып, мәнді curl-ге бермес бұрын CRLF файлдарынан бір соңғы CR таңбасын жойыңыз.
CRLF файлынан көшірілген жол proxy.example:8080 сияқты көрінуі мүмкін, бірақ айнымалы шын мәнінде каретканы қайтару таңбасымен аяқталады. Айнымалыны тырнақшаға алу сол таңбаны сақтайды; оны жоймайды.
Әр жолда бір толық прокси URL бар Bash файлы үшін:
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 оларды көрмес бұрын файл жазбаларының шекараларын өзгертуі мүмкін.
Бұл жол аяқталуларын қалыпқа келтіреді. Ол қате тыңдау протоколын, жетіспейтін соңғы нүктені немесе қолжетімсіз қызметті түзетпейді.