我正在尝试使用 jq 的参数替换,并且其中一个参数必须是键。 我努力了
$reg
- 错误
"$reg"
- 无子
\$reg
- 错误
这可以吗?
export USERNAME=joe
export PASSWORD=whatever
export DOCKER_REGISTRY="hub.docker.io"
jq -n --arg reg "${DOCKER_REGISTRY}" \
--arg u "$USERNAME" \
--arg p "${PASSWORD}" \
--arg auth "$(echo "$USERNAME:$PASSWORD" | base64)" \
'{
"auths": {
$reg: {
"username": $u,
"password": $p,
"auth": $auth
}
}
}'
顶层关键表达式需要括号:
这应该有效:
export USERNAME=joe
export PASSWORD=whatever
export DOCKER_REGISTRY="hub.docker.io"
jq -n --arg reg "${DOCKER_REGISTRY}" \
--arg u "$USERNAME" \
--arg p "${PASSWORD}" \
--arg auth "$(echo "$USERNAME:$PASSWORD" | base64)" \
'{
"auths": {
($reg): {
"username": $u,
"password": $p,
"auth": $auth
}
}
}'