while loop for example bash loops curl

loop - Bash scripting curl request con giro



using for in bash (1)

Estoy intentando extraer datos de una API usando curl, y tengo la mayoría del guión hecho, pero necesito algo de ayuda. La API tiene resultados en varias páginas que necesito recuperar, y he podido crear una secuencia de comandos de esa función, pero no puedo entender cómo hacer que el ciclo se detenga. Además, necesito ayuda para descubrir cómo dividir los datos de cada página en eventos individuales. Cada evento comienza con la misma cadena, por lo que sé el texto que se utilizará para dividir los eventos, pero no sé la sintaxis para hacerlo. ¿Alguien puede ayudar con eso también? Mi código está abajo:

#!/bin/sh string=''next/":null'' for ((i=1;until $string;i++)); do curl -H "Authorization: Token insertlongtokenhere" -H "Content-Type: application/json" https://api.app.secunia.com/api/tickets/?page=$i done

Usar este método de cadena me da

./secunia.sh: line 3: ((: until next/":null: syntax error: invalid arithmetic operator (error token is "/":null")

He intentado otras formas de comentar las comillas dobles en vano, así que estoy algo atrapado.


Saca la prueba final del encabezado y prueba en el bucle. Puede usar break para finalizar el ciclo.

for ((i=1; ; i++)); do contents=$(curl -H "Authorization: Token insertlongtokenhere" -H "Content-Type: application/json" https://api.app.secunia.com/api/tickets/?page=$i) echo "$contents" if [[ $contents =~ ''next":null'' ]] then break fi done