的package.json文件的读取name属性我有这样的:使用bash
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'"
但我想知道如何做到这一点的第一种方式。
node -e "console.log(JSON.parse(\`$str\`)['name'])"
注意反引号:
感谢让我试试吧,长相值得的。我更新了这个问题 - 您知道为防止'undefined'始终从'node -e'记录的任何方式吗?标准输出包括'未定义'在最后,我认为有一种方法可以防止这种情况,但我忘记了。 –
是的,删除'-p' –
好酷,我忘记了'-p' arg是什么,你也可以使用'||'显然是这样的:'my_val =“$(node -pe”console.log (require('./ package.json')['$ prop'])||''“)”' –