我得到了一个长shell脚本的最终结果,我想将其转换为json对象。有没有任何简单的方法可以将echo|导入
echo "name=$get_name
pass=$get_pass
value=$get_value
key=$get_key
port=$get_port
server_ip=$get_ip" | jq
我想得到像这个json 一样的结果
{
"pass": "$get_pass"
"value": "$get_value"
"key": "$get_key"
"port": "$get_port"
"server_ip": "$get_ip"
}
echo 'name=$get_name
pass=$get_pass
value=$get_value
key=$get_key
port=$get_port
server_ip=$get_ip' | jq -Rs '
split("n")
| map(capture("(?<k>^[^=]*)=(?<v>.*)") | {(.k): .v} )
| add'
以您指示的格式生成输出:
{
"name": "$get_name",
"pass": "$get_pass",
"value": "$get_value",
"key": "$get_key",
"port": "$get_port",
"server_ip": "$get_ip"
}
显然,如果您希望$get_name在echo
时间进行评估,那么您应该使用双引号。