当我执行此命令时
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
如何进行多行导出?
答案 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
变量。