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

Chu*_*ket 2 bash amazon-web-services aws-codebuild

我正在尝试按照AWS 文档在我的 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
Run Code Online (Sandbox Code Playgroud)

构建规范文件:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
    - cd backend/functions/src
    - npm install serverless
  build:
    commands:
    - ls
    - ./deploy.sh
Run Code Online (Sandbox Code Playgroud)

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 行:`for dir in */ ;做

Wal*_*r A 6

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

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