在AWS CodeBuild中调用bash脚本:找不到脚本

时间:2019-07-11 19:49:02

标签: bash amazon-web-services aws-codebuild

我正在尝试按照AWS documentationthis在我的CodeBuild进程中运行一个小的bash脚本。

deploy.sh可在src/目录中找到:

#!/bin/bash

pwd=$PWD

for dir in */ ; do
  target="$pwd/${dir%/}"
  cd "$target"
  npm install
  sls deploy && sls s3deploy
done

buildspec文件:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
    - cd backend/functions/src
    - npm install serverless
  build:
    commands:
    - ls
    - ./deploy.sh

在上面的日志中的ls命令之后,我可以看到deploy.sh在当前目录中。

错误:

  

/codebuild/output/tmp/script.sh:4:/codebuild/output/tmp/script.sh:./deploy.sh:找不到

我也尝试使用命令/bin/bash deploy.sh,但这会导致另一个错误:

  

deploy.sh:第2行:$'\ r':找不到命令

     

deploy.sh:第4行:$'\ r':找不到命令

     

deploy.sh:第7行:$'\ r':找不到命令

     

deploy.sh:第8行:意外令牌'$'do \ r'附近的语法错误

     

deploy.sh:第8行:`* /中的dir;

1 个答案:

答案 0 :(得分:1)

(首先写为评论,它解决了问题)

文件是在Windows中制作的。
将CRLF更改为LF,\r消失了。