的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'])||''「)」' –