为什么在本例中将分支设置为“m”而不是“master”?
$ branch="[master]"
$ echo $branch
m
这发生在我所在的任何目录中,但仅在我的 mac 上而不是在我的一个 linux 机器上。
貌似是文件名扩展,你当前目录下有文件叫m
吗?
事实上,正如 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]
也许是某种逃避问题,你有没有试图逃避 [ 和 ]?
编辑:我可以在我的系统上重现该行为,但前提是m
存在名为的文件:
[sf@zeus:~] touch m
[sf@zeus:~] branch="[master]"
[sf@zeus:~] echo $branch
m