如何增加curl脚本中的偏移量?
我的脚本是:
#!/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
假设您想保留所有人的所有回复offests。如果没有$i
文件名,所有curl
调用都会写入同一文件并覆盖它,只保留最后的curl
结果。 >outfile$i 2>&1
您可以使用代替&>outfile$i
,但它可能无法在某些(较旧的)shell 中工作。for
您可以使用likefor ((i=150; i<=155; ++i)); do
或 来实现同样的目的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
to150
和中的所有数字160
。