Một dòng sao chép từ tệp CRLF có thể trông giống proxy.example:8080 trong khi biến thực ra kết thúc bằng ký tự xuống dòng CR. Đặt biến trong dấu ngoặc kép sẽ giữ lại ký tự đó; nó không xóa ký tự đó.

Đối với tệp Bash chứa một URL proxy đầy đủ mỗi dòng:

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

Dùng các mục như http://proxy.example:8080; danh sách proxy HTTP cung cấp các địa chỉ công khai ứng viên để định dạng như vậy. read xóa dấu phân cách xuống dòng; phần mở rộng hậu tố xóa một CR ở cuối nếu có. Điều kiện cũng xử lý dòng cuối không rỗng mà không có xuống dòng.

IFS= ngăn việc tách trường trong khi read, và -r giữ nguyên dấu gạch chéo ngược. Sau đó dấu ngoặc kép truyền URL kết quả như một đối số curl duy nhất. Tránh lặp qua đầu ra của thay thế lệnh: việc tách từ của shell có thể thay đổi ranh giới bản ghi của tệp trước khi curl nhìn thấy chúng.

Điều này chuẩn hóa phần cuối dòng. Nó không sửa giao thức lắng nghe sai, điểm cuối bị thiếu hay dịch vụ không thể truy cập.

Bài viết liên quan