カールスクリプトでオフセットを増やすには?
私のスクリプトは次のとおりです
#!/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
一部の(以前の)シェルでは機能しない可能性があります。for
for ((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
およびにインポートします。150
160