git、grep和bash的奇怪行为

git、grep和bash的奇怪行为,git,bash,Git,Bash,命令 $ git branch --contains HEAD 返回 * goofing_around 如我所料。但是我想把它存储在一个bash变量中,所以我运行 $ bbb=$(git branch --contains HEAD) 然后我检查bbb的内容 $ echo $bbb 。。。然后得到 file1 file2 file3 goofing_around (file1等确实是目录中的文件。)发生了什么?如何只存储给出当前分支名称的第一行?引号很重要:不带引号的扩展是字符串拆分(

命令

$ git branch --contains HEAD
返回

* goofing_around
如我所料。但是我想把它存储在一个bash变量中,所以我运行

$ bbb=$(git branch --contains HEAD)
然后我检查
bbb
的内容

$ echo $bbb
。。。然后得到

file1 file2 file3 goofing_around

file1
等确实是目录中的文件。)发生了什么?如何只存储给出当前分支名称的第一行?

引号很重要:不带引号的扩展是字符串拆分(在空格中拆分为单词,或在
IFS
中拆分为字符)和全局扩展(因此,只包含
*
的单词将替换为当前目录中的文件名列表)


引号很重要:不带引号的扩展是字符串拆分(在
IFS
中拆分为单词或字符)和全局扩展(因此只包含
*
的单词将替换为当前目录中的文件名列表)


你的存储方式没有问题。问题是你是如何检查它的内容的。BTW,你会发现这一点。另一方面,考虑<代码>声明-PBBB < /代码>作为一种更精确的方法来检查变量<代码> BBB包含的内容:它的输出将告诉你变量是否被导出;是否是数组;无论它是否设置为只读、标记为整数等。存储它的方式没有问题。问题是你是如何检查它的内容的。BTW,你会发现这一点。另一方面,考虑<代码>声明-PBBB < /代码>作为一种更精确的方法来检查变量<代码> BBB包含的内容:它的输出将告诉你变量是否被导出;是否是数组;是否设置为只读、标记为整数等。
echo "$bbb"