Bash curl प्रॉक्सी सूचियाँ: CRLF पंक्तियों से अंतिम CR हटाएँ
Bash में प्रॉक्सी URL पंक्ति-दर-पंक्ति पढ़ें और मान curl को देने से पहले CRLF फ़ाइलों से एक अंतिम CR हटाएँ।
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 के देखने से पहले फ़ाइल के रिकॉर्ड की सीमाएँ बदल सकता है।
यह पंक्ति-अंत को सामान्य करता है। यह गलत लिसनिंग प्रोटोकॉल, अनुपस्थित एंडपॉइंट या अगम्य सेवा को ठीक नहीं करता।