为什么 b=`git branch` 与 git branch 不同

-1 bash git

我不明白 Bash 在这种情况下的行为:

如果我输入git branch,我会得到一个分支列表。

但是,如果我尝试将它放入一个变量中,例如b=`git branch`; echo $b,我会得到一个输出,就像我制作了ls; git branch. 目录的内容与分支一起列出。

有人可以解释这种行为吗?

Ste*_*itt 7

git branch使用 指示当前分支*。当你跑

b=`git branch`; echo $b
Run Code Online (Sandbox Code Playgroud)

由于$b使用不带引号echo,因此*由 shell 展开,显示当前目录中的文件。引用将避免这种情况:

b=`git branch`; echo "$b"
Run Code Online (Sandbox Code Playgroud)