假设我有hi.json:
{
"word": "$(echo hello-world)"
}
有没有一种简单的方法来强制执行shell表达式,使我的结果是?
{
"word": "hello-world"
}
我可以处理它的一种方法是将此字符串的内容存储在某个shell文件中,这样我就有了这样的内容:
scratch_MAIN() {
content="{\"word\": \"$(echo hello-world)\"}"
echo $content
}
scratch_MAIN
它给出了
{"word": "hello-world"}
但是,我想将hi.json内容存储在一个独立的文件中,而不是shell文件。这可能吗?
2条答案
按热度按时间7fhtutme1#
eval
会做你的工作。你必须显式地转义引号,否则当json内容传递给eval
时,它们将被处理。我的测试
hi.json
:如果你有像
jq
这样的json处理器,你也可以漂亮地打印结果。n3h0vuf22#
我建议不要这样做,但...
注意,替换的结果在json字符串中可能是不法律的的。例如,命令输出中的换行符需要转义。