printf 将逗号打印到文件

printf prints commas to file

我有一个环境变量,它被打印到一个文件中,然后由我的程序读取。当变量被写入文件时,它看起来像这样:

-----BEGIN
,RSA
,PRIVATE
,KEY-----
,MIIEowIBAAKCAQEAtxPgpPqD1cZdoTeOMvOnqp0NkkCqcMsn8V4j9KrFWpPxiweu
,H1r69S2ssmuqtleLVKk2kwgTn6x+AvcqgTBLsjnfpPmD2mBKvTqCvaBT2VXdxGiA
,dlp  etc....

什么时候应该是这样的:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtxPgpPqD1cZdoTeOMvOnqp0NkkCqcMsn8V4j9KrFWpPxiweu
H1r69S2ssmuqtleLVKk2kwgTn6x+AvcqgTBLsjnfpPmD2mBKvTqCvaBT2VXdxGiA
dlpJMJAvCwBsDnDRilSRoNja4DpF26bHSQePwZF1/4OqnF6GtvGcPPPENiJkjxr/ etc...

我的脚本命令如下所示:

- printf '%s\n', $PRIVATE_KEY > $CI_PROJECT_DIR/private.pem

我做错了什么?

printf '%s\n' "$PRIVATE_KEY" > "$CI_PROJECT_DIR"/private.pem

引用 "$PRIVATE_KEY" 以防止它被拆分成单独的词。根据经验,始终引用变量扩展以防止意外破坏它们的值。养成好习惯。

此外,删除 '%s\n', 中的尾随逗号。 Shell 脚本参数不是 comma-separated。