Is this a bug in bash?

Bob McGowan ramjr0915@gmail.com
Sat Sep 5 03:22:18 GMT 2020


I am trying to set things up so the Bash profile detects if bash is 
running from the Windows "XWin Server" startup link or not. The startup 
link has the following as the command:

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec 
/usr/bin/startxwin"

So I thought I'd try adding the env command to set an environment variable:

C:\cygwin64\bin\run.exe --quote /usr/bin/env startxwin=yes 
/usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"

This works (if there's a better way, I'd be happy to learn of it) but in 
the process of testing I had a problem when echo'ing the variable.

For purposes of describing the bug, I simplified the command as follows:

     env startup=yes bash -l -c 'echo "cmd:  $startup"'

I also added an "echo profile: $startup" to the .bash_profile file.

When I run the above in a Cygwin shell, the output is:

$ env startup=yes bash -l -c "echo cmd: $startup"
profile: yes
$

When I run it in a Linux shell, the output is:

$ env startup=yes bash -l -c 'echo "cmd:  $startup"'
profile: yes
cmd:  yes
$

As you can see, the Cygwin side fails to generate any output from the -c 
echo command but on the Linux system there is output.

Normally I'd call this a bug but since this is running under Windows it 
may be some weirdness of the implementation required to create the Linux 
like environment.

The Bash version in Cygwin is  4.4.12(3)-release and for my Debian Linux 
system, it is 5.0.3(1)-release.  So it could also be that it existed in 
Linux 4.x series and has been fixed in the 5.x series.

Bob



More information about the Cygwin mailing list