gpt4 book ai didi

json - 将 JSON 转换为 bash 环境变量

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:07 24 4
gpt4 key购买 nike

我不久前写了这个美丽的东西,在服务器上运行,并将环境变量从 JSON 转换为 bash .env 格式。

#!/usr/bin/env node
var strings = []
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', function(data) {
var json = JSON.parse(data)
for (var key in json) {
var val = json[key]
strings.push(key + '="' + val + '"')
}
})
process.stdin.on('end', function() {
var output = strings.join('\n')
process.stdout.write(output)
})

这可以在没有 Node 的情况下完成,只需 bash 吗?我在未安装 Node 或未指定正确路径的服务器上无法正常工作。

最佳答案

是的,假设您要保留的所有键/值对都采用以下形式:

"key":"stringval"
"key":numval
"key":true or false or null

(冒号周围有可选空格):

#!/bin/sh
tr -d '\n' |
grep -o '"[A-Za-z_][A-Za-z_0-9]\+"\s*:\s*\("[^"]\+"\|[0-9\.]\+\|true\|false\|null\)' |
sed 's/"\(.*\)"\s*:\s*"\?\([^"]\+\)"\?/\1="\2"/'

示例:

cat manifest.json | ./json2env.sh

产量

name="Polymer Starter Kit"
short_name="Polymer Starter Kit"
src="images/touch/icon-72x72.png"
sizes="72x72"
type="image/png"
test1="0.123"
test2="true"
test3="false"
test4="null"

关于json - 将 JSON 转换为 bash 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657234/

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