我得到了一个长外壳脚本的最终结果,我想将其转换为json对象,有什么简单的方法可以通过管道传递回声|投入其中
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"
}
答案 0 :(得分:0)
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"
}
显然,如果您希望在echo
时对$ get_name进行求值,则可以使用双引号。