首页 > 解决方案 > 将所有更改的文件名保存到 bash 中的列表

问题描述

我想从中获取所有更改的文件

$git diff --name-only SHA1 SHA2

并将它们保存到bash中的数组变量中,但是当我使用时:

files=$(git diff --name-only SHA1 SHA2)

出于某种原因,它将所有文件名保存为带有空格分隔符的字符串,所以当我输入

$echo ${files[0]} 

我将所有文件名作为单个字符串获取,并且

$echo ${files[1]}

是空的。那么如何将每个文件名保存为数组元素,以便可以遍历它们呢?

标签: bashgit

解决方案


您可以在 bash 中将多行输出捕获为数组

files=($(git diff --name-only SHA1 SHA2))

然后echo ${files[0]}echo ${files[1]}将按预期工作。


推荐阅读