Script Curl com incremento de deslocamento [fechado]

1

como incrementar o número de correção no script curl?

meu script é:

#!/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
    
por derrik brown 13.09.2017 / 05:18

2 respostas

0

#!/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

Você pode usar um simples loop for para alterar seu URL. O exemplo acima levará todos os números de 0 a 150 e 160 .

    
por 13.09.2017 / 08:22
0

Eu suponho que você quer offset ir de 150 a 155, e também encurtar o comando para que eu possa explicar melhor.

Você pode incrementar offset com um for loop e usar a variável i como offset :

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

Notas:

  • Eu coloco $i em >outfile$i , supondo que você queira manter todas as respostas para todos os offests . Sem $i no nome do arquivo, todas as chamadas curl gravam no mesmo arquivo e sobrescrevem, mantendo apenas o último resultado curl .
  • Em vez de >outfile$i 2>&1 , você pode usar &>outfile$i , mas pode não funcionar em alguns shells (mais antigos).
  • Você pode conseguir a mesma coisa com um for como for ((i=150; i<=155; ++i)); do ou for i in $(seq 150 155); do . Alguma forma pode ser mais legível / familiar para você, mas não faz diferença neste exemplo.
  • É mais simples usar a expansão das chaves para casos como este e criar várias URLs para o curl :

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

    Mas não é possível gravar cada resposta em um arquivo separado. Em vez disso, você pode anexar todas as respostas a um arquivo usando >> .

por 13.09.2017 / 10:05