我想在bash文件中进行计算
files : {
{
file {
name: "Bla,java"
line_changes : [45,146,14]
}
}
{
file {
name: "Foo.java"
line_changed : [7,8,9,10]
}
}
}
所以我有这个
gitOutput=$(git diff origin/master..origin/mybranch)
echo $gitOuput
我的问题是:
输出太糟糕了,没有格式化。
一切都在同一行
我无法对其进行逻辑分析...
类似于\ n拆分或“ diff --git”等拆分
也没有新行。 因此,如果有的话,那是没有意义的。
所以我想知道,git diff是否有漂亮的格式选项
[更新]
我尝试了这种奇怪的方法
git diff origin/master..origin/mybranch > data.txt
data=$(cat data.txt)
输出为: data.txt绝对完美 但是数据变量。都搞砸了...
与IFS有关吗?
答案 0 :(得分:2)
简短的答案是:您应该添加引号:
gitOutput="$(git diff origin/master..origin/mybranch)"
echo "$gitOuput"
,以便行返回保持原样。通常,这是在shell中包含变量时通常要执行的操作。
有关使用引号的详细说明,请参见 https://unix.stackexchange.com/questions/68694/when-is-double-quoting-necessary