בחר את הפרוקסי בתוך כל משימת xargs
הרץ את הבחירה האקראית ב-shell הבן כדי שכל משימת curl מקבילה תקבל פרוקסי מהרשימה.
הצב את הבחירה האקראית בתוך ה-shell שמופעל לכל משימה. הרחבת החלפת פקודה ב-shell החיצוני בוחרת את הערך לפני ש-xargs מתחיל את עבודתו.
עם proxies.txt מאומת שמכיל כתובת פרוקסי אחת בכל שורה, מועמדים ציבוריים יכולים להגיע מרשימת הפרוקסי החינמיים; עצב כל רשומה בפרוטוקול ש-curl תומך בו:
printf '%s\0' 'https://a.example/one' 'https://b.example/two' |
xargs -0 -n 1 -P 4 sh -c '
proxy=$(shuf -n 1 proxies.txt) || exit 1
[ -n "$proxy" ] || exit 1
curl --fail --silent --show-error --max-time 30 \
--proxy "$proxy" --noproxy "" --output /dev/null "$1"
' _
-n 1 מספק כתובת אחת לכל פקודה, ו-P 4 מאפשר עד ארבע פקודות בו-זמנית. הקלט המופרד באפסים שומר על הכתובת כארגומנט אחד. הקו התחתון תופס את מיקום $0 של sh ומשאיר את הכתובת ב-$1.
כל shell בן מריץ shuf באופן עצמאי. הבחירה האקראית עשויה לבחור באותו פרוקסי יותר מפעם אחת; היא אינה תזמון סבבי ואינה הבטחה לכתובות יציאה שונות.
רשימת העקיפה הריקה המפורשת מונעת מהגדרת no_proxy שעוברת בירושה לעקוף את המתווך שנבחר. הדוגמה משליכה גופי תגובה; השתמש בנתיבי פלט נפרדים בעת שמירת הורדות במקביל.