我无法调试它为什么返回
空值。有人可以帮忙吗?
法典-
getJSONParamater() { echo "之前 : $1 $2 $3" 评估 "$3=$(猫 $1 |jq'."$2"')" echo "之后 : $1 $2 $3"}return_value='默认'getJSONParamater etl-without-transformation.json success_email return_valueecho $return_value
jq '."$2"'
将发送文字."$2"
作为jq的表达式,你想要的是:
jq --arg key "$2" '.[$key]' "$1"
还删除了无用的cat
使用。
我不太明白你想要的评估部分是什么?但我想您是在尝试将return_value
设置为jq
的结果?
getJSONParameter() {
jq --arg key "$2" '.[$key]' "$1"
}
return_value="$(getJSONParameter "etl-without-transformation.json" "success_email")"
使用全局变量的另一种方法:
return_value='default'
getJSONParamater() {
return_value=$(cat "$1" | jq "$2")
}
getJSONParamater etl-without-transformation.json .success_email
echo $return_value