CRLF dosyasından kopyalanan bir satır proxy.example:8080 gibi görünebilir, oysa değişken aslında satır başı karakteriyle biter. Değişkeni tırnak içine almak bu karakteri korur; onu kaldırmaz.

Her satırda bir tam proxy URL'si içeren bir Bash dosyası için:

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 gibi girdiler kullanın; HTTP proxy listesi bu şekilde biçimlendirilecek genel adres adayları sağlar. read yeni satır ayırıcısını kaldırır; son ek genişletmesi varsa bir sondaki CR'yi kaldırır. Koşul ayrıca yeni satırı olmayan son boş olmayan satırı da işler.

IFS= read sırasında alan bölünmesini önler ve -r gerçek ters eğik çizgileri korur. Ardından çift tırnaklar elde edilen URL'yi tek bir curl argümanı olarak geçirir. Komut ikamesinin çıktısı üzerinde yinelemeden kaçının: kabuğun sözcük bölünmesi, curl onları görmeden önce dosyanın kayıt sınırlarını değiştirebilir.

Bu, satır sonlarını normalleştirir. Yanlış dinleme protokolünü, eksik uç noktayı veya erişilemeyen hizmeti düzeltmez.

İlgili makaleler