簡體   English   中英

讀取 HTTP 正文響應並使用 Bash 迭代該結果

[英]Read HTTP Body Response and iterate over that result with Bash

我對 bash 很弱,所以請耐心等待。

我必須設置一個執行這些操作的 bash 腳本:

  • 向 url 發起 curl 請求,例如:
curl  https://example.com/my_first_request

此請求返回一個簡單的響應,每行一個值,例如:

300
320
350
500

我需要讀取所有這些值,然后像這樣對每一行執行 curl 請求:

curl  https://example.com/my_second_request/300
curl  https://example.com/my_second_request/320
curl  https://example.com/my_second_request/350
curl  https://example.com/my_second_request/500

我不在乎這些請求是異步的還是同步的,這個腳本可能會占用它需要的所有時間。

我已經嘗試了多次關於 stackoverflow 和一些教程的答案,但每次都失敗了。 有人可以幫我完成這項任務嗎?

謝謝。

您可以使用 bash 命令替換:

for code in $(curl https://example.com/my_first_request); do
    curl https://example.com/my_second_request/$code
done

您也可以嘗試使用xargs ,它能夠在子進程中運行指定數量的命令。 一個快速的班輪看起來像:

curl "https://example.com/my_first_request" | xargs -n1 -P2 -I % curl "https://example.com/my_second_request/%"

-n1的使用指示xargs處理一個輸入參數。 在這種情況下,您從第一個端點獲得的響應代碼( 300, 320, 350, 500, ... )分別進行處理。 並且-P2告訴xargs維護2個一直運行的子進程,每個子進程處理一個參數,直到處理完所有輸入參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM