From: Jeff King Date: Sun, 08 Nov 2009 23:03:00 GMT Subject: Re: Strange behavior (possible bug) using bash command subsitution with "git branch" Message-ID: <20091108230300.GB17129@coredump.intra.peff.net> In-Reply-To: <20091108224955.GA14095@atjola.homenet> On Sun, Nov 08, 2009 at 11:49:55PM +0100, Björn Steinbrink wrote: > > I ran into a weird situation while working on a script, which is best > > described with a little snippet from my gitosis-admin repository: > > > > $ git branch > > * master > ^^^ > > > $ branch=$(git branch) > > $ echo $branch > > gitosis.conf keydir master > > Your shell expands the *, thus echo sees all the things in the current > directory. Use 'echo "$branch"' and you'll see what you expected. And more to the point, this is just one reason why one should use for-each-ref when scripting (the other is that git-branch's output is considered porcelain, and is not guaranteed to remain stable). E.g.: git for-each-ref --format='%(refname:short)' refs/heads/ would produce the output the original poster wanted. -Peff