Senarai proksi Bash curl: buang CR hujung daripada baris CRLF
Baca URL proksi baris demi baris dalam Bash dan buang satu CR hujung daripada fail CRLF sebelum menyerahkan nilai kepada curl.
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.