这是我的config.json:
{
"env": "dev",
"dev": {
"projects" : {
"prj1": {
"dependencies": {},
"description": ""
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的bash命令:
PRJNAME='prj1'
echo $PRJNAME
jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json
jq '.dev.projects.prj1' config.json
Run Code Online (Sandbox Code Playgroud)
输出:
prj1
null
{
"dependencies": {},
"description": ""
}
Run Code Online (Sandbox Code Playgroud)
所以$ PRJNAME是prj1,但第一次调用只输出null.
有人能帮我吗?
我的JSON:
{
"projects": {
"api-client": {
"status": "false",
"when": "19-01-2016 12:54:47"
},
"api-admin": {
"status": "false",
"when": "19-01-2016 12:54:47"
},
"myweb": {
"status": "false",
"when": "19-01-2016 12:54:47"
}
}
}
Run Code Online (Sandbox Code Playgroud)
脚本:
JQ=$(which jq)
CACHE='cache.json'
PROJECT=("api-client" "api-admin" "myweb")
for PROJECT in ${PROJECTS[*]}; do
if [[ $(${JQ} -r ".projects.\"${PROJECT}\"" ${CACHE}) != null ]]; then
if [[ $(${JQ} -r ".projects.\"${PROJECT}\".status" ${CACHE}) == true ]]; then
local PROJECTDATE=$(${JQ} -r ".projects.\"${PROJECT}\".when" ${CACHE})
local STATUS="${COLOR_GREEN}Installed${CLEAR} on ${COLOR_YELLOW}${PROJECTDATE}${CLEAR}"
else
local STATUS="${COLOR_RED}Not installed${CLEAR}"
fi
echo -e "${CLEAR} - …Run Code Online (Sandbox Code Playgroud)