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

在AWS CodeBuild内调用bash脚本:找不到脚本,bash,amazon-web-services,aws-codebuild,Bash,Amazon Web Services,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 buildspec文件: version: 0.2 phases: insta

我正试图在代码构建过程中按照和运行一个小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\n

deploy.sh:第8行:`for dir in*/;做

(最初是作为评论写的,它解决了问题)

这些文件是在Windows中创建的。
将CRLF更改为LF,则
\r
将消失。

(首先作为注释编写,它解决了问题)

这些文件是在Windows中创建的。

将CRLF更改为LF,则
\r
将消失。

您是否在Windows下创建了该文件?转换为DOS
\r
行结尾到unix。@WalterA捕捉得很好。它是用WSL编写的,从CRLF改为LF修复了这个问题。你是在Windows下创建这个文件的吗?转换为DOS
\r
行结尾到unix。@WalterA捕捉得很好。它是在WSL中编写的,从CRLF更改为LF修复了这个问题在azure app servvice中有类似的问题,但在azure app servvice中也有类似的问题,在azure app servvice中也有类似的问题,但在azure app servvice中也有类似的问题,THX