قوائم وكيل 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.
هذا يوحّد نهايات الأسطر. لكنه لا يصلح بروتوكول استماع خاطئًا، أو نقطة نهاية مفقودة، أو خدمة لا يمكن الوصول إليها.