【发布时间】:2019-07-12 15:50:51
【问题描述】:
我正在尝试按照 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
构建规范文件:
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 行:`for dir in */ ;做
【问题讨论】:
-
你是在Windows下制作文件的吗?转换为 DOS
\r行尾为 unix。 -
@Walter 不错。它是用 WSL 编写的,从 CRLF 更改为 LF 解决了问题
标签: bash amazon-web-services aws-codebuild