我正在创建一个shell脚本(.sh),并试图从REST调用的JSON响应中读取特定的值。下面是我通过调用Rest URL(GET)获得的示例JSON响应
{"isTestRunning":false,"status":null}
下面是我试图在shell脚本中编写的逻辑。我对shell脚本完全陌生,发现很难为我的需求编写脚本。我该怎么开始呢?如果大家有文档链接的话也会很有帮助的?
response = curl 'http://test-url/checkTestEnable'
for(till response.isTestRunning is true)
{
response = curl 'http://test-url/checkTestEnable'
if(response.isTestRunning is false){
//curl 'another url'
//break the loop.
}
}
3条答案
按热度按时间sqyvllje1#
我会选择
jq
。jq
类似于JSON数据的sed。如果
jq
不可用,您可以使用下面的,有点难看的正则表达式与sed
代替。顺便说一句:如果你可以创建shell脚本,那么你可以安装
jq
,它只是一个单一的二进制文件。f8rj6qna2#
很遗憾你不能安装
jq
,因为它确实是从shell处理JSON的最佳方式。只要curl
返回的对象中只有isTestRunning
是布尔值,@JGK的sed
解决方案就可以工作;如果发生变化,您可以稍微复杂化sed
表达式以确保得到正确的表达式,但是使用正则表达式解析JSON很快就会变得难以控制。可能还有其他选项,具体取决于系统上安装的内容。Python通常附带JSON模块,例如:
icnyk63a3#
正如@JGK所建议的,下面的一个对我来说就像一个魔法。非常感谢@JGK!