【发布时间】:2016-04-27 10:25:48
【问题描述】:
我正在卷曲一个端点:
#!/bin/bash
instance_info=$(curl -sk https://internal.admin.com/app/instance)
给出一个 json 响应:
{
"basePath": "/install",
"metadata": {
"deployed_artifact": "app01",
"docker": "True",
"http_port": "7471",
"url": "www.google.com"
},
"name": "app-01",
"server": "webserver1"
}
我试图避免多次卷曲以使用 JQ 从 json 中获取我需要的变量。
如果有人能告诉我如何将响应存储为另一个 var,然后使用它来变量化名称,我将不胜感激:server: url: http_port:
以下似乎运行了两次 curl:
#!/bin/bash
instance_info=$(curl -sk https://internal.admin.com/app/instance)
server_name=$(echo instance_info | /usr/bin/jq --raw-output '.server')
url=$(echo instance_info | /usr/bin/jq --raw-output '.url')
【问题讨论】:
-
不,您的示例只运行一次 curl。
-
我不明白为什么 curl 行会被执行两次。你怎么知道它被执行了两次?
-
你可以使用
/usr/bin/jq <args> <<< "$instance_info"来消除回声。