Bash curl പ്രോക്സി പട്ടികകൾ: CRLF വരികളിൽ നിന്ന് അവസാന CR നീക്കം ചെയ്യുക
Bash-ൽ പ്രോക്സി URL വരി വരിയായി വായിച്ച്, മൂല്യം curl-ലേക്ക് നൽകുന്നതിന് മുമ്പ് CRLF ഫയലുകളിൽ നിന്ന് ഒരു അവസാന CR നീക്കം ചെയ്യുക.
CRLF ഫയലിൽ നിന്ന് പകർത്തിയ ഒരു വരി proxy.example:8080 പോലെ തോന്നാം, എന്നാൽ വേരിയബിൾ യഥാർത്ഥത്തിൽ ഒരു കാരേജ് റിട്ടേൺ ഉപയോഗിച്ച് അവസാനിക്കുന്നു. വേരിയബിൾ ഉദ്ധരണികളിൽ ഇടുന്നത് ആ പ്രതീകം നിലനിർത്തുന്നു; അത് അത് നീക്കം ചെയ്യുന്നില്ല.
ഓരോ വരിയിലും ഒരു പൂർണ്ണ പ്രോക്സി URL ഉള്ള Bash ഫയലിനായി:
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 പോലുള്ള എൻട്രികൾ ഉപയോഗിക്കുക; HTTP പ്രോക്സി പട്ടിക അങ്ങനെ ഫോർമാറ്റ് ചെയ്യാവുന്ന പൊതു വിലാസ സ്ഥാനാർത്ഥികൾ നൽകുന്നു. read പുതിയ വരി വേർതിരിക്കലുകൾ നീക്കം ചെയ്യുന്നു; സഫിക്സ് വിപുലീകരണം ഉണ്ടെങ്കിൽ ഒരു അവസാന CR നീക്കം ചെയ്യുന്നു. പുതിയ വരിയില്ലാത്ത അവസാന ശൂന്യമല്ലാത്ത വരിയും ഈ വ്യവസ്ഥ പ്രോസസ്സ് ചെയ്യുന്നു.
IFS= read സമയത്ത് ഫീൽഡ് വിഭജനം തടയുന്നു, -r അക്ഷരാർത്ഥത്തിലുള്ള ബാക്ക്സ്ലാഷുകൾ സംരക്ഷിക്കുന്നു. തുടർന്ന് ഇരട്ട ഉദ്ധരണികൾ ലഭിച്ച URL ഒരു curl ആർഗ്യുമെന്റായി നൽകുന്നു. കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷന്റെ ഔട്ട്പുട്ടിലൂടെ ആവർത്തിക്കുന്നത് ഒഴിവാക്കുക: ഷെല്ലിന്റെ വാക്ക് വിഭജനം curl അവ കാണുന്നതിന് മുമ്പ് ഫയലിന്റെ റെക്കോർഡ് അതിരുകൾ മാറ്റിയേക്കാം.
ഇത് വരികളുടെ അവസാനം സാധാരണമാക്കുന്നു. തെറ്റായ കേൾവി പ്രോട്ടോക്കോൾ, ഇല്ലാത്ത എൻഡ്പോയിന്റ് അല്ലെങ്കിൽ എത്തിച്ചേരാനാകാത്ത സേവനം ഇത് പരിഹരിക്കുന്നില്ല.