将多行的Git日志输出保存到Bash环境变量中

4
我试图将git命令的输出保存到GitHub Actions步骤中的环境变量中,但它只获取输出的第一行并省略其余部分。运行此命令的容器为ubuntu-latest
这是我尝试捕获的方式:
TMP_CHANGES=`git log origin/master..`

我期望从echo $TMP_CHANGES得到什么:

commit f179fb811618cc5a2f07637a2ecb394a43ebee21
Author: DannyHinshaw <danny@nulleffort.com>
Date:   Tue Jan 14 07:38:29 2020 -0500
    Testing commits diff
commit ed596d2ff2e5bd9801eae6ece7abf627db89f82b
Author: DannyHinshaw <danny@nulleffort.com>
Date:   Tue Jan 14 07:38:28 2020 -0500
    Bump version -> v1.2.1-101
commit 40f88031293aba0221b65ed1d2a8295b651ef91b
Author: DannyHinshaw <danny@nulleffort.com>
Date:   Tue Jan 14 07:35:04 2020 -0500
    Testing commits diff

我能了解的:

commit f179fb811618cc5a2f07637a2ecb394a43ebee21

我错过了什么?我该如何捕获并保存完整的多行输出到变量中,同时保留多行格式?

你在终端看到的输出可能部分来自标准输出 commit f179fb811618cc5a2f07637a2ecb394a43ebee21,另一部分则来自错误输出。 - Pierre François
这是否回答了你的问题?将多行输出捕获到Bash变量中 - Léa Gris
@LéaGris 不,我已经看过并尝试了。 - DjH
这不可能。这意味着TMP_CHANGES只包含一个字符。请复制并粘贴以下命令:TMP_CHANGES=$(git log origin/master..); wc <<<$TMP_CHANGES; echo "TMP_CHANGES=$TMP_CHANGES",然后将输出复制并粘贴回来。 - user1934428
1
@user1934428 错误与问题无关并不意味着它不应该被提及。许多话题存在很大的混淆,通常通过与特定问题无关的评论来揭示,我认为这些评论应该被澄清而不是被忽略。 - William Pursell
显示剩余6条评论
1个回答

3
在Ubuntu 18.04.3 LTS上进行测试。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:    18.04
Codename:   bionic

$ git --version
git version 2.17.1

获取日志

GT=$(git log -n3 origin/master..)

不带引号的回声

$ echo $GT
commit c7c1d60c01b23ba225d79d350d74d0f8990ea8df Author: Ivan <user@pisem.net> Date: Tue Jan 14 16:05:16 2020 +0300 ref test2 commit 7a52ab307dd6eb2c88cdee83d40dbf2f2ed8c218 Author: Ivan <user@pisem.net> Date: Tue Jan 14 15:47:16 2020 +0300 ref test2 commit 8f0a2c081a4e731b676c95991d9b182fadd71a95 Author: Ivan <user@pisem.net> Date: Tue Jan 14 12:45:13 2020 +0300 add more test files

使用双引号的Echo

$ echo "$GT"
commit c7c1d60c01b23ba225d79d350d74d0f8990ea8df
Author: Ivan <user@pisem.net>
Date:   Tue Jan 14 16:05:16 2020 +0300

    ref test2

commit 7a52ab307dd6eb2c88cdee83d40dbf2f2ed8c218
Author: Ivan <user@pisem.net>
Date:   Tue Jan 14 15:47:16 2020 +0300

    ref test2

commit 8f0a2c081a4e731b676c95991d9b182fadd71a95
Author: Ivan <user@pisem.net>
Date:   Tue Jan 14 12:45:13 2020 +0300

    add more test files

我已经尝试了我能想到的各种变化,但结果都一样。你认为可能是 GH Actions 调用命令的方式有问题吗?我刚刚发现它看起来像这样 bin/bash -e {0} - DjH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接