0

为什么在本例中将分支设置为“m”而不是“master”?

$ branch="[master]"
$ echo $branch
m

这发生在我所在的任何目录中,但仅在我的 mac 上而不是在我的一个 linux 机器上。

4

3 回答 3

2

貌似是文件名扩展,你当前目录下有文件叫m吗?

于 2012-04-17T13:31:40.760 回答
1

事实上,正如 unwind 所说,这与文件名扩展有关。

[15:33] ~$ branch="[master]"
[15:33] ~$ echo $branch 
[master]
[15:33] ~$ touch m
[15:33] ~$ echo $branch
m
[15:33] ~$

当前目录中必须有一个名为m.

一个可能的补救措施是使用引用:

$ ls m # `m' exists
m
$ echo "$branch" # yet this echoes "[master]"
[master]
于 2012-04-17T13:34:52.800 回答
1

也许是某种逃避问题,你有没有试图逃避 [ 和 ]?

编辑:我可以在我的系统上重现该行为,但前提是m存在名为的文件:

[sf@zeus:~] touch m
[sf@zeus:~] branch="[master]"
[sf@zeus:~] echo $branch
m
于 2012-04-17T13:33:24.073 回答