unix 如何将内容从CICD变量复制到gitlab-ci.yml文件

lsmd5eda  于 2022-11-04  发布在  Unix
关注(0)|答案(1)|浏览(201)

我在将内容从CICD变量复制到gitlab-ci.yml文件CICD变量时遇到了问题
这个值我试图在yml文件中访问它,其中这个值替换了另一个值。
这里我遇到的问题是,当使用sed命令进行替换时,它没有将\n复制为\n,而是提供了换行符。但我希望\n按原样粘贴。

PRIVATE_KEY='-----BEGIN PRIVATE KEY-----\nMIIEvQIBA\n-----END PRIVATE KEY-----\n'
sed -i -e \a s,PRIVATE_KEY,'-----BEGIN PRIVATE KEY-----\nMIIEv\nQIBA\n-----END PRIVATE KEY-----\n',g key.json

输出量:

-----BEGIN PRIVATE KEY-----
MIIEv
QIBA
-----END PRIVATE KEY-----

但这不是我需要的。

jei2mxaa

jei2mxaa1#

您可以使用

sed -i "s,PRIVATE_KEY,$(sed 's/[&/\]/\\&/g' <<< "$PRIVATE_KEY"),g" key.json

这里,sed 's/[&/\]/\\&/g' <<< "$PRIVATE_KEY"在变量文本中的&/\字符之前添加一个转义反斜杠。
请参阅online demo


# !/bin/bash

PRIVATE_KEY='-----BEGIN PRIVATE KEY-----\nMIIEvQIBA\n-----END PRIVATE KEY-----\n'
sed "s,PRIVATE_KEY,$(sed 's/[&/\]/\\&/g' <<< "$PRIVATE_KEY"),g" <<< "PRIVATE_KEY"

输出量:

-----BEGIN PRIVATE KEY-----\nMIIEvQIBA\n-----END PRIVATE KEY-----\n

相关问题