git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Potential asterisk expansion bug in Windows Git Bash?

From
BZBo Zhang <zhangbodut@gmail.com>
Date
Aug 14, 2019, 12:38 UTC
Message-ID
<CAO=KXnvrVdTRW=FhKMixSHuR-qahJ2QqUKOn4PerZAVcxVJHww@mail.gmail.com>
In-Reply-To
<20190814121045.GA30302@sigill.intra.peff.net>
Thank you very much Jeff!

It turns out I ran into https://bugs.openjdk.java.net/browse/JDK-8131329 on Windows. The example was also a mistake. Anyway, false alarm, thank you again!

Regards, Bo

On Wed, Aug 14, 2019 at 8:10 PM Jeff King <peff@peff.net> wrote:
Show 60 quoted lines
>
> On Wed, Aug 14, 2019 at 07:50:47PM +0800, Bo Zhang wrote:
>
> > Today I noticed that on Windows Git Bash, the asterisk (*) is
> > incorrectly expanded even when it’s in a quote or following a
> > backslash (\). I’m wondering if this is the correct behaviour (which
> > seems like to me NOT).
> >
> > Step to reproduce (in Windows git bash):
> >
> > zhb@zhb-PC MINGW64 ~/Desktop
> > $ bash --version
> > GNU bash, version 4.4.19(2)-release (x86_64-pc-msys)
> > Copyright (C) 2016 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> >
> > This is free software; you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.
> >
> > zhb@zhb-PC MINGW64 ~/Desktop
> > $ cat 1.sh
> > echo $1
>
> Your script doesn't quote "$1", so whatever you pass in will be subject
> to wildcard expansion inside the shell running the script.
>
> Try this:
>
>   $ cat bad.sh
>   echo $1
>   $ cat good.sh
>   echo "$1"
>
>   $ bash bad.sh '*'
>   bad.sh good.sh
>
>   $ bash good.sh '*'
>   *
>
> > zhb@zhb-PC MINGW64 ~/Desktop
> > $ bash 1.sh '*'
> > $A 1.sh 1.txt
>
> So this is the case I showed above.
>
> > zhb@zhb-PC MINGW64 ~/Desktop
> > $ bash 1.sh "*"
> > $A 1.sh 1.txt
>
> And this is equivalent. The quotes suppress wildcard expansion in your
> interactive shell, but the script itself does another round of
> expansion.
>
> > zhb@zhb-PC MINGW64 ~/Desktop
> > $ bash 1.sh \*
> > 1.sh 1.txt
>
> And same here.
>
> -Peff
Previous: Jeff King
Message 3 of 3 in “Potential asterisk expansion bug in Windows Git Bash?”
  1. Bo ZhangAug 14, 2019
  2. Jeff KingAug 14, 2019
  3. Bo ZhangAug 14, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.