Baris yang disalin daripada fail CRLF mungkin kelihatan seperti proxy.example:8080 sedangkan pemboleh ubah sebenarnya berakhir dengan carriage return. Meletakkan pemboleh ubah dalam tanda petik mengekalkan aksara itu; ia tidak membuangnya.

Untuk fail Bash yang mengandungi satu URL proksi lengkap setiap baris:

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

Gunakan entri seperti http://proxy.example:8080; senarai proksi HTTP menyediakan alamat awam calon untuk diformat begitu. read membuang pembatas baris baharu; pengembangan akhiran membuang satu CR hujung jika ada. Syarat itu juga memproses baris terakhir yang tidak kosong tanpa baris baharu.

IFS= menghalang pemisahan medan semasa read, dan -r mengekalkan garis miring terbalik literal. Tanda petik berganda kemudian menyerahkan URL yang terhasil sebagai satu argumen curl. Elakkan lelaran ke atas output penggantian arahan: pemisahan perkataan shell boleh mengubah sempadan rekod fail sebelum curl melihatnya.

Ini menormalkan hujung baris. Ia tidak membaiki protokol mendengar yang salah, titik akhir yang hilang atau perkhidmatan yang tidak dapat dicapai.

Artikel berkaitan