使用twist编写Bash脚本curl请求

使用twist编写Bash脚本curl请求,bash,loops,curl,Bash,Loops,Curl,我试图使用curl从API中提取数据,并完成了大部分脚本,但需要一些帮助。API导致我需要检索多个页面,我已经能够编写该函数的脚本,但我不知道如何停止循环。此外,我还需要一些帮助来弄清楚如何将每个页面的数据分解为单独的事件。每个事件都以相同的字符串开头,因此我知道用于分解事件的文本,但我不知道这样做的语法。有人能帮忙吗?我的代码如下: #!/bin/sh string='next\":null' for ((i=1;until $string;i++)); do curl -H "A

我试图使用curl从API中提取数据,并完成了大部分脚本,但需要一些帮助。API导致我需要检索多个页面,我已经能够编写该函数的脚本,但我不知道如何停止循环。此外,我还需要一些帮助来弄清楚如何将每个页面的数据分解为单独的事件。每个事件都以相同的字符串开头,因此我知道用于分解事件的文本,但我不知道这样做的语法。有人能帮忙吗?我的代码如下:

#!/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
使用这个字符串方法给了我一个

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

我尝试了其他方法注释掉双引号,但没有效果,所以我有点卡住了。

将结束测试从
for
标题中取出,并在循环中测试它。然后可以使用
break
结束循环

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

你说的
直到$string
是什么意思?你可以在
for
循环中测试结尾,并使用
break
语句停止循环。我以为我完成了,但我没有。我本想让Splunk将页面内容分解成事件,但它无法做到。我试图把事件之间的逗号去掉,但进展不顺利。这是json的一部分,最近更新:“2017-02-28517:56:19Z”},{“id”:588699,“name”:null,,这是我正在尝试的sed行,{code>sed-e“s/},{/}+{/“-e”s/}[^}]*$/“secunia.txt”{tr“+”“\n”,我已经把它放在for循环之外,但它没有退出
。我遗漏了什么?你应该发布一个新问题,因为这是另一个问题。脚本仍然会在最后一页之后尝试下载下一页。这是显示最后一页是最后一页的第一个适用字符:
{“count”:66,“next”:null,
,而
{“count”:66
在每一页上。另外,感谢您尝试提供帮助。编辑:当我在“next”中换行时也会发生同样的情况:null'。在
内容
之前需要一个
$
。我以为
[[
不需要这个,但它需要这个。