json - 使用 bash 读取 package.json 文件的 name 属性

标签 json node.js bash shell zsh

我有这个:

str=`cat package.json`
prop="name"
my_val="$(node -e "console.log(JSON.parse(${str})[${prop}]);")"
echo "$my_val"

我想读取 package.json 文件的 name 属性。我认为这很接近,但我收到 JSON.parse 错误:

SyntaxError: Unexpected token o in JSON at position 1
    at Object.parse (native)
    at [eval]:1:18
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.runInThisContext (vm.js:97:38)

有人知道如何解决吗?

这有效:

prop="name"
my_val="$(node -e "console.log(require('./package.json')['$prop'])")"
echo "json val: '$my_val'"

但我想知道如何以第一种方式做到这一点。

最佳答案

在linux系统上有jq命令可以解析JSON文件

jq -r ".name" package.json

关于json - 使用 bash 读取 package.json 文件的 name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47234740/

相关文章:

linux - Bash - 从 ls -la 输出中过滤掉目录,但保留目录 "."

regex - 在 shell 脚本中进行字符串操作的最佳方法是什么?

IOS JSON 从 Mandrill 发送电子邮件

javascript - 如何将 javascript 数组更改为 angular-schema-form 的 JSON 对象?

ios - 在 iOS 上解析 json 数组

javascript - 通过此关键字调用函数时出现 TypeError

javascript - 格式化json数组的问题

javascript - 生产模式下的CompoundJS渲染网页而不是检索JSON数据

node.js - NodeJS 100% cpu 使用率 - epoll_wait

bash - 无法使用 Cron 删除文件