オフセット増分を使用するカールスクリプト

オフセット増分を使用するカールスクリプト

カールスクリプトでオフセットを増やすには?

私のスクリプトは次のとおりです

#!/bin/bash
curl -a --silent --header "api-key: 4444444455" --header "accept: application/xml" --header "cache-control: no-store" "https://gghghghg.com/api/invoices?supplier%5Bid%5D%5Bnot_eq%5D=109789%3F&limit=50&offset=150" >  /bi01/In_API_Call_Data.txt 2>&1 
exit 0

答え1

私はあなたが欲しいと思います。オフセット150 から 155 に置き換えて、よりよく説明できるようにコマンドを減らします。

追加できますオフセットforループを使用し、変数をi次のように使用します。オフセット:

for i in {150..155}; do
    curl --header "kk: vv" "http://example.com/path&offset=$i" >outfile$i 2>&1
done

メモ:

  • すべての人のすべての返信を保持したいとし、を入力します$i>outfile$i攻撃$iファイル名がない場合、すべてのcurl呼び出しは同じファイルに書き込んで上書きされ、最終結果のみが保持curlされます。
  • >outfile$i 2>&1代わりに使用できますが、&>outfile$i一部の(以前の)シェルでは機能しない可能性があります。
  • forfor ((i=150; i<=155; ++i)); do同じ目的を達成するためにlikeまたはを使用できますfor i in $(seq 150 155); do。一部のフォームはより読みやすく、使い慣れているかもしれませんが、この場合は違いはありません。
  • このような場合は、中かっこ拡張を使用して次の URL を複数作成する方が簡単ですcurl

    curl --header "kk: vv" "http://example.com/path&offset="{150..155} >>outfile 2>&1
    

    ただし、各応答を別々のファイルに書き込むことはできません。代わりに>>

答え2

#!/bin/bash
for i in {0..150,160}; do
  curl -asH "api-key: 4444444455" -H "accept: application/xml" -H "cache-control: no-store" "https://gghghghg.com/api/invoices?supplier%5Bid%5D%5Bnot_eq%5D=109789%3F&limit=50&offset="$i >/bi01/In_API_Call_Data.txt 2>&1
done
exit 0

単純なforループを使用してURLを変更できます。上記の例では、すべての数字を0およびにインポートします。150160

関連情報