内容目录
需求
需求的产生是因为公司一个接口返回的是json
游戏服启动是容器启动,有时候合服,数据库名就变了,要从接口获取数据库名
安装jq
#安装EPEL源(这一步可以省略):
yum install epel-release -y
#安装完EPEL源后,可以查看下jq包是否存在
yum list jq
#安装jq
yum install jq -y
shell命令实现
然后从openapi容器接口返回 筛选 server id获取数据库名
curl 获取接口返回 |管道到jq 获取dbName 再|管道到sed过滤json的"号特殊符号
dbName=$( curl http://openapi:4050/gameServer/Serializable|jq '.[] | select (.server >= "'${kserid}'" and .server <= "'${kserid}'") | .dbName'|sed 's#"##g' )
由于jq筛选条件’.[] | select (.server="’${kserid}’")’ 不支持=号条件,会返回所有内容,所以取巧>= and <= 了
发现了 是用==
命令改为
dbName=$( curl http://openapi:4050/gameServer/Serializable|jq '.[] | select (.server == "'${kserid}'") | .dbName'|sed 's#"##g' )
网络上其他的jq命令详解
这一篇挺全的
https://blog.csdn.net/weixin_44799217/article/details/131493398
近期评论