使用jq读取package.json版本失败,bash脚本输出异常求助
问题原因及解决办法
1. echo命令未正确引用变量
你的bash脚本中echo version是直接输出字符串"version",而非变量version的值。bash中引用变量需要在变量名前添加$符号,正确写法应为echo $version。
2. package.json格式不符合JSON规范
你提供的package.json里,键名version没有用双引号包裹,这违反了JSON的语法要求(JSON规定所有键必须是双引号包裹的字符串)。jq作为严格的JSON解析工具,无法识别这种不合法的键,因此即使echo写法正确,也无法获取到对应的值。
修正后的package.json:
{ "version": "1.0.0" }
修正后的bash.sh脚本:
version=$(jq -r '.version' package.json) echo $version
执行修正后的脚本,就能正常输出1.0.0。
内容的提问来源于stack exchange,提问作者Vienna J
相关产品推荐
相关产品推荐

