gpt4 book ai didi

environment-variables - JQ在保存环境变量的同时添加单引号

转载 作者:行者123 更新时间:2023-12-02 14:48:55 27 4
gpt4 key购买 nike

好吧,这可能是个愚蠢的问题。我有 test.json 文件:

{
"timestamp": 1234567890,
"report": "AgeReport"
}

我想做的是提取 timestampreport 值并将它们存储在一些环境变量中:

export $(cat test.json | jq -r '@sh "TIMESTAMP=\(.timestamp) REPORT=\(.report)"')

结果是:

echo $TIMESTAMP $REPORT
1234567890 'AgeReport'

问题是那些单引号会破坏其他命令。我怎样才能去掉那些单引号?

注意:我将按原样保留已接受的答案,但请参阅 @Iniananswer 以获得更好的解决方案。

最佳答案

为什么要使用 eval 使它变得复杂并且引用困惑?而是简单地通过将变量与 NULL (\u0000) 连接起来发出变量,然后在 shell 环境中读回它

{
IFS= read -r -d '' TIMESTAMP
IFS= read -r -d '' REPORT
} < <(jq -r '(.timestamp|tostring) + "\u0000" + .report + "\u0000"' test.json)

通过使字段由 NULL 定界符连接,这使您的解析更加可靠,NULL 定界符不能成为字符串序列的一部分。

关于environment-variables - JQ在保存环境变量的同时添加单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57042755/

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