POSIX字符在CodeBuild服务器上不起作用

问题描述 投票:0回答:1

在构建期间,我试图使用linux命令从节点项目中的package.json文件中获取版本号。我在Codebuild中使用Ubuntu 18.04映像。我有以下命令,我想从buildspec.yml运行:

export PACKAGE_NAME=$(cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g')

此命令的问题是awk -F:是无效的YAML。为了解决这个问题,我添加了POSIX空格字符:

export PACKAGE_NAME=$(cat package.json | grep name | head -1 | awk -F:[[:space:]] '{ print $2 }' | sed 's/[",]//g')
<

因此,对于我来说,有没有一种语法上更好的方法可以实现我的目标,或者有没有办法使CodeBuild可以像其他Linux系统一样读取命令?

linux amazon-web-services ubuntu-18.04 aws-codebuild
1个回答
0
投票
我通过在映像上安装jq然后代替使用它来解决此问题:

PACKAGE_VERSION=$(jq -r ".version" package.json)

© www.soinside.com 2019 - 2024. All rights reserved.