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