将 git 结果存储在变量中会导致奇怪的行为

Aud*_*low 5 scripting bash git

我有一个带有 2 个分支的 git 存储库:

$ git branch
* master
  test/branch
Run Code Online (Sandbox Code Playgroud)

我可以通过执行以下操作单独列出特定的分支:

$ git branch --list master
* master

$ git branch --list test/branch
  test/branch
Run Code Online (Sandbox Code Playgroud)

但是,当我将此命令存储为变量时,会得到意想不到的结果:

$ LOCAL=$(git branch --list master); echo $LOCAL
index.php readme.md master

$ LOCAL=$(git branch --list test/branch); echo $LOCAL
test/branch
Run Code Online (Sandbox Code Playgroud)

结果并不总是一致的。有时我从带有正斜杠的分支中得到意想不到的结果,有时没有,这取决于我正在使用的存储库。我无法确切地了解正在发生的事情或原因。

为什么一个分支列出目录中的文件和分支本身,而另一个只列出分支?

Mat*_*vid 5

上面,看起来 Bash 正在扩展*出现在$LOCAL. 试试echo "$LOCAL"