我正在尝试按照AWS documentation和this在我的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;
答案 0 :(得分:1)
(首先写为评论,它解决了问题)
文件是在Windows中制作的。
将CRLF更改为LF,\r
消失了。