Can I pass a string variable to jq not the file?

2020-02-27 03:53发布

I want to convert JSON string into an array in bash. The JSON string is passed to the bash script as an argument (it doesn't exist in a file).

Is there a way of achieving it without using some temp files?

Similarly to this:

script.sh

#! /bin/bash
json_data='{"key":"value"}'
jq '.key' $json_data

jq: error: Could not open file {key:value}: No such file or directory

7条回答
ら.Afraid
2楼-- · 2020-02-27 04:32

Absolutely. Just tell bash to give it a file instead.

jq '.key' <(echo "$json_data")

And make sure you run it in bash, not sh.

查看更多
登录 后发表回答