【发布时间】:2017-10-24 09:46:59
【问题描述】:
我有一个环境变量%SSH_PRIVATE_KEY%,并希望使用命令行将其打印到文件中,而不使用批处理文件。这是因为我需要在 Gitlab-Ci .yml 脚本中使用这个文件。
在 Linux 中,这很简单:
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
这会产生:
-----BEGIN RSA PRIVATE KEY-----
DHHDpgIFFFFAQEA4s5JARKOiF/dfherreh/qeGLNaryra7rt927okJmonpJHyCbA5SRyjsST/oC
tJx+YJ0BaNbbHtpbjbMeWgqKPXNAIRng30TXCOLLKverteygerg/ererg/GVFfd5T1v/qY2rGCN
v9yHSw89upy8pA+HvAFFFFHDb2YUAgpyYMqCcZ3vGY0/NDBxQQwDKwrefqwef/wefweqe/wwALb
等等。
但是在 Windows 中,如果我尝试:
echo "%SSH_PRIVATE_KEY%" > C:\runner\builds\66092d15\0\myproject\.ssh\id_rsa
它生成这个输出:
"-----BEGIN RSA PRIVATE KEY-----
因为一旦到达%SSH_PRIVATE_KEY% 中的换行符,它就会转义回显命令。
如何使用 windows 命令行将完整的%SSH_PRIVATE_KEY% 打印到文件中?
【问题讨论】:
-
如何为变量分配多行值?
-
@Magoo 设置为 gitlab 秘密变量,添加到管道环境中。这是解释here。
标签: windows command-line escaping echo gitlab-ci