linux - 如何执行命令并将值分配给变量?
问题描述
我如何只返回Pending
值?现在该命令返回整个 json 对象。
这是我到目前为止得到的,但不知道如何过滤出Pending
值
$DEPLOYMENT_ID // env variable
$(aws deploy get-deployment --deployment-id "$DEPLOYMENT_ID")
// returns:
{
"deploymentInfo": {
"applicationName": "WordPress_App",
"status": "Succeeded",
"deploymentOverview": {
"Failed": 0,
"InProgress": 0,
"Skipped": 0,
"Succeeded": 1,
"Pending": 0
},
...,
...,
}
}
我想在 if else 块中运行命令,如下所示:
if [[ $(aws deploy get-deployment --deployment-id "$DEPLOYMENT_ID") = 0 ]] ;
then
// do stuff
fi
解决方案
使用--query
参数过滤响应。
get_pending () {
aws --query 'deploymentInfo.deploymentOverview.Pending' \
deploy get-deployment --deployment-id "$DEPLOYMENT_ID"
}
if [[ $(get_pending) = 0 ]]; then
...
fi
(shell 函数只是为了便于阅读。)
该--query
参数采用JMESPath 表达式,该表达式用于在将结果 JSON 返回给调用者之前对其进行过滤。
推荐阅读
- reactjs - 库来处理全局状态以及从 React 中的服务器获取的状态
- github-actions - 下载后 GitHub 操作工件不可用
- css - CSS:在某些选择器之前选择伪元素之后
- java - 在 JMeter 中发送肥皂消息中的动态值
- css - Vue + 顺风手风琴与过渡
- bootstrap-4 - 强制 justify-content-around 的最后一个元素与上一行的第一个元素对齐
- php - shopify如何删除应用程序卸载页面?
- java - TestNG beforeGroups 没有被执行
- python - 用于动态变量更改的 Jinja2 案例切换
- c - 需要帮助使用 qsort 从结构中对数组进行排序