如何使用 echo 命令正确渲染隔断线?

how to properly render breakline with echo command?

我正在尝试使用 GitHub 操作 create-file

作为我的 GitHub 工作流程的一部分,我想创建一个文本文件,例如:

version=<version number>
released=<date>

其中 <version number><date> 是之前在我的脚本中定义的变量。

因此,我尝试了以下方法:

FILE_DATA: "version=${{steps.read_version.outputs.value}}\nreleased=${{env.TODAY}}"

\n 被解释为 space 而不是断行,因此生成了一个单行文件。

查看GitHub动作的源代码,好像只执行了

 echo $FILE_DATA > "$FILE_NAME"

在我的例子中 $FILE_NAME" 等于 ./docs/version.properties

因此,我尝试通过使用 echo 命令而不是 GitHub 操作来直接执行我想要的操作,但无论我尝试什么,它都无法正确呈现 \n.

非常欢迎任何建议。

这似乎是一个语法问题。

    - name: Write multiline text to file
      shell: bash
      run: |
        {
          echo '$FILE_DATA'
        } >> $FILE_NAME   

我的工作流程文件中有同样的问题。 在 this 工作流程文件中,我还将多行文本写入文件。

编辑:

抱歉,我误解了你的问题。

只需使用 echo -e 和双引号... .

#!/bin/bash

version="1.1"
released="01-10-2022"

myString1="version=$version\nreleased=$released"

echo -e "$myString1" > test1.txt

输出:

version=1.1
released=01-10-2022