我正在尝试创建一个bash脚本,它将在其他分支中的当前分支之前打印提交。但是,当我在子shell中执行命令git branch
时,我不仅获得了分支名称,还获得了当前目录中的文件和文件夹列表。为什么调用$(git branch)
会这样?
答案 0 :(得分:4)
这不是命令替换,而是引用。以下是回购邮件git branch
的结果:
$ git branch
5-job-test-fails
* master
revisions
with_cool_background
注意问号。
当您编写echo $(git branch)
时,由于参数未加引号,星号将扩展为当前目录中的文件:
$ echo $(git branch)
5-job-test-fails app bin cable config config.ru db erd.pdf Gemfile Gemfile.lock Guardfile lib log public Rakefile README.rdoc test tmp vendor master revisions with_cool_background
为了解决这个问题,引用一下这个论点:
$ echo "$(git branch)"
5-job-test-fails
* master
revisions
with_cool_background