Bash curl proksinimekirjad: eemalda CRLF-ridadest lõpus olev CR
Lugege proksi URL-e Bashis rida rea haaval ja eemaldage enne väärtuse curlile andmist CRLF-failidest üks lõpus olev CR.
CRLF-failist kopeeritud rida võib välja näha nagu proxy.example:8080, kuigi muutuja lõpeb tegelikult reavahetuse märgiga. Muutuja jutumärkidesse panemine säilitab selle märgi; see ei eemalda seda.
Bash-faili jaoks, mis sisaldab ühte täielikku proksi URL-i rea kohta:
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
Kasutage kirjeid nagu http://proxy.example:8080; HTTP proksi nimekiri pakub avalikke aadressikandidaate, mida nii vormindada. read eemaldab reavahetuse eraldaja; sufiksi laiendus eemaldab ühe lõpus oleva CR-i, kui see on olemas. Tingimus töötleb ka viimast mittetühja rida ilma reavahetuseta.
IFS= takistab väljade tükeldamist read-i ajal ja -r säilitab sõnasõnalised kurakaldkriipsud. Seejärel edastavad topeltjutumärgid saadud URL-i ühe curl-argumendina. Vältige käsustasenduse väljundi kordamist: kesta sõnatükeldus võib muuta faili kirjete piire enne, kui curl neid näeb.
See normaliseerib reavahetused. See ei paranda vale kuulamisprotokolli, puuduvat lõpp-punkti ega kättesaamatut teenust.