gpt4 book ai didi

bash - AWS CodeBuild,buildspec.yml "bad substitution"错误

转载 作者:行者123 更新时间:2023-12-03 08:18:24 24 4
gpt4 key购买 nike

我正在使用 AWS CodeBuild,并且需要操作环境变量。我最初尝试在 buildspec.yml 中使用 bash 模式替换,如下所示:

  build:
on-failure: ABORT
commands:
- env="${CODEBUILD_WEBHOOK_TRIGGER/tag\//}"

CODEBUILD_WEBHOOK_TRIGGER 应该类似于 tag/my-tag-name,我想删除其中的 tag/ 部分。此命令在本地 bash shell 中运行良好,但在 CodeBuild 中执行时,输出如下:

[Container] 2021/08/02 21:29:28 Running command env="${CODEBUILD_WEBHOOK_TRIGGER/tag\//}"
/codebuild/output/tmp/script.sh: 4: Bad substitution
...
[Container] 2021/08/02 21:29:28 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: env="${CODEBUILD_WEBHOOK_TRIGGER/tag\//}". Reason: exit status 2

我最终用 awk 命令替换了模式替换,只是为了让它工作,但它会产生更复杂的代码。我不明白为什么模式替换不起作用?

这是我最终使用的 awk 命令,它运行良好:

  build:
on-failure: ABORT
commands:
- env="`echo $CODEBUILD_WEBHOOK_TRIGGER | awk -F/ '$1=="tag" {print $2;}'`"

最佳答案

CodeBuild 可能未使用 bash。试试这个:

env="${CODEBUILD_WEBHOOK_TRIGGER#tag/}"

关于bash - AWS CodeBuild,buildspec.yml "bad substitution"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68628464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com