【发布时间】:2017-11-02 10:01:00
【问题描述】:
我有一个 bitbucket 管道配置,它通过用管道环境变量替换匹配的字符串来构建我的 app.yaml 文件。其中一些变量包含特殊字符并导致 SED 失败。我该如何解决这个问题?
我的管道脚本是这样的:
script:
- cp app.yaml.dist app.yaml
- cat app.yaml
- echo ${APP_GOOGLE_CLIENT_SECRET} > src/config/credentials/gcloud.json
- sed -i "s/\$DEBUG/$DEBUG/" app.yaml
- sed -i "s/\$DATABASE_URL/$STAGING_MONGOURL/" app.yaml
所以我从我的 dist 版本创建了一个 app.yaml 文件。然后,我将 app.yaml 文件中的变量(例如 $DEBUG 和 $DATABASE_URL)替换为存储在管道中的环境变量。
如果对我的 app.yaml 文件环境变量部分有帮助的话,基本上是这样的:
...
env_variables:
APP_DEBUG: $DEBUG
DATABASE_URL: $DATABASE_URL
...
我得到的错误是sed: -e expression #1, char 35: unknown option to 's'
提前致谢
【问题讨论】:
-
`$STAGING_MONGOURL`
-
抱歉,这是我测试某些东西时遗留下来的。我实际上并没有使用它们。会更新的
-
那么使用
@怎么样?sed -i "s@\$DEBUG@$DEBUG@" app.yaml或#或!