【发布时间】:2016-08-08 00:31:41
【问题描述】:
我不久前写了这个美丽的东西,在服务器上运行并将环境变量从 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)
})
这可以在没有节点的情况下完成,只需 bash 吗?我无法在没有安装节点或没有指定正确路径的服务器上运行它。
【问题讨论】:
-
我不知道这段代码在做什么,你应该指定它。要在 bash 中处理 JSOn,请使用 jq --> stedolan.github.io/jq
-
我需要一个命令/文件/bash 脚本来处理 STDIN JSON 和 STDOUT 每个键值对,格式为
key + '="' + val + '"',后跟一个新行。 -
@fedorqui 我不能使用任何不是 ubuntu / linux / unix 原生的依赖项。
-
正如@fedorqui 建议的那样,使用 JSON 处理器。 Bash 不是适合这项工作的工具。
-
那你不能这样做;标准的 Unix 实用程序不适合解析 JSON。