Ang linyang kinopya mula sa isang file na CRLF ay maaaring magmukhang proxy.example:8080 habang ang variable ay talagang nagtatapos sa isang carriage return. Ang paglalagay ng variable sa mga panipi ay nagpapanatili ng karakter na iyon; hindi ito nag-aalis nito.

Para sa isang file na Bash na may isang kumpletong URL ng proxy bawat linya:

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

Gumamit ng mga entry tulad ng http://proxy.example:8080; ang listahan ng proxy na HTTP ay nagbibigay ng mga pampublikong address na kandidato upang i-format nang ganoon. Inaalis ng read ang delimiter ng bagong linya; inaalis ng pagpapalawak ng suffix ang isang huling CR kung mayroon. Pinoproseso rin ng kundisyon ang huling linyang hindi blangko na walang bagong linya.

Pinipigilan ng IFS= ang paghahati ng field habang nagbabasa ang read, at pinapanatili ng -r ang mga literal na backslash. Pagkatapos, ipinapasa ng dobleng panipi ang resultang URL bilang isang argumento ng curl. Iwasan ang pag-ulit sa output ng pagpapalit ng command: ang paghahati ng salita ng shell ay maaaring magbago ng mga hangganan ng record ng file bago pa ito makita ng curl.

Ito ay nag-normalize ng mga dulo ng linya. Hindi nito inaayos ang maling protocol ng pakikinig, nawawalang endpoint, o serbisyong hindi maabot.

Kaugnay na mga artikulo