在字符串文字中使用 Circle CI 环境变量作为命令参数的一部分

问题描述 投票:0回答:1

我对 Circle CI 和所有 CI 都很陌生。我想使用环境变量 ($SSH_PORT) 调用带有自定义端口号的

rsync
命令,如下所示:

- run: rsync -ru -e 'ssh -p ${SSH_PORT}' ~/source/ $SSH_USER@$SSH_HOST:/dest

但是我的 SSH_PORT 变量是按字面意思而不是它的值。我已经使用默认端口 22 测试了该命令,它运行良好。我怀疑 Circle CI 使用 bash 来运行这些命令,但我不确定我是否错误地处理了 bash 变量,或者我不理解 Circle CI 环境变量好吧。

我也尝试过:

- run: rsync -ru -e 'ssh -p "${SSH_PORT}"' ~/source/ $SSH_USER@$SSH_HOST:/dest
- run: rsync -ru -e 'ssh -p $SSH_PORT' ~/source/ $SSH_USER@$SSH_HOST:/dest

如何获取变量值而不是字面意思的变量名称?

对于其他上下文,我在下面进行了测试并且它有效:

- run: rsync -ru -e 'ssh -p 1234' ~/source/ $SSH_USER@$SSH_HOST:/dest
ssh rsync circleci
1个回答
0
投票

在没有看到您的配置的情况下,很难猜测发生了什么。但是,您查看过此页面上的信息吗?它似乎在谈论您想要做什么:https://circleci.com/docs/env-vars/

© www.soinside.com 2019 - 2024. All rights reserved.