gpt4 book ai didi

json - 通过命令行将 json 回显到文件中

转载 作者:IT王子 更新时间:2023-10-29 00:46:52 28 4
gpt4 key购买 nike

我有一个构建工具,它正在创建一个注入(inject) json 格式字符串的 versions.json 文件。

最初我想通过回声注入(inject) json,如下所示。

json = {"commit_id": "b8f2b8b", "environment": "test", "tags_at_commit": "sometags", "project": "someproject", "current_date": "09/10/2014", "version": "someversion"}

echo -e json > versions.jso

但是 echo 似乎逃脱了所有引号,所以我的文件最终会变成这样:

{commit_id: b8f2b8b, environment: test, tags_at_commit: somereleasetags, project: someproject, current_date: 09/10/2014, version: someproject}

不幸的是,这不是有效的 JSON。

最佳答案

要保留双引号,您需要用单引号将变量括起来,如下所示:

json='{"commit_id": "b8f2b8b", "environment": "test", "tags_at_commit": "sometags", "project": "someproject", "current_date": "09/10/2014", "version": "someversion"}'
echo "$json" > versions.json

请注意,此方法不会正确显示变量,而是打印文字 $variable .

如果你需要打印变量,使用cat << EOF构造,它利用内置于 Bash 中的 Here Document 重定向。参见 man bash并搜索“此处文档”以获取更多信息。

例子:

commit="b8f2b8b"
environment="test"
...etc

cat << EOF > /versions.json
{"commit_id": "$commit", "environment": "$environment", "tags_at_commit": "$tags", "project": "$project", "current_date": "$date", "version": "$version"}
EOF

如果您正在寻找与 bash 配合得很好的更高级的 json 处理工具,我推荐 jq

关于json - 通过命令行将 json 回显到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26276348/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com