将git日志作为多行字符串导出到变量

时间:2019-02-14 10:15:56

标签: git shell

当我执行此命令时

 git log 23237d...1a8815 --oneline --pretty=tformat:"%h %B"

我得到类似

1a88151 commit1

8a544c0 commit2

b168aa9 commit3

但是当我要将其导出到某个变量时:

export LOG=`git log 23237d...1a8815 --oneline --pretty=tformat:"%h %B"`

并将其输出:echo $LOG, 我明白了:

1a88151 commit1 8a544c0 commit2 b168aa9 commit3

如何进行多行导出?

2 个答案:

答案 0 :(得分:3)

Bash使用IFS变量的内容处理输入。从文档中:

  

内部字段分隔符(IFS),用于在扩展后进行单词拆分,并使用read Builtin命令将行拆分为单词。   默认值为<space><tab><newline>

您可以更改IFS的值来更改行为:

IFS='' export LOG=`git log 23237d...1a8815 --oneline --pretty=tformat:"%h %B"`

答案 1 :(得分:2)

您需要在回声调用中引用LOG变量的扩展名:

echo "$LOG"

这可以防止单词拆分。在这种情况下,您无需修改​​IFS变量。