这是由于在buildspec.yml文件中执行的命令使用了不支持的特定shell语法而引起的错误。如果在构建规范文件中使用Shell命令,则必须使用支持的语法。例如,如果您使用的是bash,则应将您的命令写成${NAME}的形式,而不是$NAME。示例如下:
version: 0.2
phases: install: commands: - npm install build: commands: - echo "Building the code" - export NAME=myname - echo "Hello ${NAME}" # supported syntax - echo "Hello $NAME" # unsupported syntax, will generate 'bad substitution' error
其中的export NAME=myname命令需要改写成export NAME="myname"的形式,使用双引号包围变量名和值,这是推荐的做法。