Curl
嘗試將值從文件循環到 curl 命令
我什至不確定這是否可能。我正在嘗試創建一個循環,我可以在其中使用文件中的不同值進行捲曲。
for i in `cat id`; do curl -X POST 'https:/myurl \ --header 'X-XX-Authorization: XX' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'ACS-Licensing-Ack: XXXX' \ --header 'Authorization: Bearer XXXXX' \ --data-urlencode 'XXID=`find * -name $i`' done
我得到回應
{"code":"400-bad-request","message":"XX app with ID `find * -name $i` not found"}
如何將我之前擷取的 $i 值放入這個 –data-urlencode 欄位?我的 id 文件很簡單,它包含幾個數字,如下所示。1234 23232 32323 非常感謝任何幫助。謝謝。
這是我的身份證文件。它基本上是一個數字列表
1761 1762 1763 1764 1765
所以我的最終目標是進入一個循環,第一個 curl 請求將執行 –data-urlencode ‘XXID=1761’ 第二個請求將執行 –data-urlencode ‘XXID=1762’,第三個請求執行 –data-urlencode ’ XXID=1763’ 等
您不能
'
對變數使用單引號,因為它們之間的任何內容都將被視為文字文本並且不會被 shell 擴展。而是使用雙引號"
。也是
find
一個用於搜尋文件的實用程序,而不是在文件中。以下應該有效:
#!/bin/bash for line in $(cat ./id) do curl -X POST 'https:/myurla \ --header 'X-XX-Authorization: XX' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'ACS-Licensing-Ack: XXXX' \ --header 'Authorization: Bearer XXXXX' \ --data-urlencode XXID="$line" done
如果您的
id
文件只包含一個每行增加 1 的數字,您可以使用 aseq
of{..}
創建一個數字序列:for num in {1761..1765} do echo $num done
for num in $(seq 1761 1765) do echo $num done