Bash curl-ის პროქსი სიები: CRLF სტრიქონებიდან ბოლო CR-ის მოცილება
წაიკითხეთ პროქსის URL-ები სტრიქონობით Bash-ში და მნიშვნელობის curl-ისთვის გადაცემამდე მოხსენით ერთი ბოლო CR CRLF ფაილებიდან.
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 დაინახავს მათ.
ეს ახდენს სტრიქონების დაბოლოებების ნორმალიზებას. ის არ ასწორებს არასწორ მოსმენის პროტოკოლს, დაკარგულ საბოლოო წერტილს ან მიუწვდომელ სერვისს.