Gitlab 秘密变量中的转义字符

Escape char in Gitlab Secret Variables

我有一个秘密变量:

但是当我执行 - echo %MySecretVar% 时,runner 仅显示 foo

如何在 Gitlab Secret Vars 中转义像 ! 这样的特殊字符?

我在 Gitlab 上遇到了同样的问题,工作 运行 在 windows 上,但我认为它也会在 Linux 上重现,因为看起来 Gitlab 解析问题或中继很奇怪转义。

所以我设置了环境变量

APPPOOL_PWD: 'blabla!foo$bar'

echo %APPPOOL_PWD%echo $APPPOOL_PWD 的输出是 'blabla'

Gitlab 似乎正在吃掉感叹号 ! 和美元符号 $。为了避免在注释中建议使用感叹号,我使用了 ^^,对于美元符号,我使用了 Gitlab variables documentation.

中建议的 $$

所以下面的变量效果很好:

APPPOOL_PWD: 'blabla^^!foo$$bar'

在这种情况下 echo 命令的输出将是 'blabla!foo$bar'.

我可以通过这种方式使用带有特殊字符的值:

  1. 定义 Gitlab CI 变量 FOO 并在值中包含特殊字符,例如?!asdf&%fghjkl
  2. .gitlab-ci.yml中定义:
variables:
  bar: '"%FOO%"'
script:
  - echo %bar%

这样,变量将保持与您在 CI 变量字段中键入的完全相同的方式。

我正在使用 Windows 批次 shell。如果您对脚本 运行 使用另一个 shell,则语法与 %bar% 略有不同。在此处查看语法:Gitlab CI reference