This is the mail archive of the
mailing list for the Cygwin project.
Re: Yes but I don't understand ...
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: David Selby <cygwin at pusspaws dot net>
- Cc: cygwin at cygwin dot com
- Date: Tue, 5 Aug 2003 16:29:01 -0400 (EDT)
- Subject: Re: Yes but I don't understand ...
- Reply-to: cygwin at cygwin dot com
On Tue, 5 Aug 2003, David Selby wrote:
> Randall R Schulz wrote:
> > David,
> > At 12:28 2003-08-05, David Selby wrote:
> >> I have hit a problem with bash ... as a sample program I have ...
> > Your problem is that /bin/sh is ash, not BASH. To get BASH, use /bin/bash
> >> #!/bin/sh
> >> Dave
> You are dead right, I tried
> /bin/bash <script>
> and it worked perfectly, but I am afraid I do not understand why ...
> echo $BASH_VERSION
> Tells me I have bash
Yes, because it's inherited from the parent shell environment, most
likely (or you're running the above command from bash). You do have bash
installed, but as /bin/bash, *not* /bin/sh.
> I call cygwin with ...
> c:\cygwin\win\rxvt.exe -e \bin\bash --login -i
> ie bash
Yes, you explicitly invoke bash.
> Where did ash (a stripped down bash?) come in ?
When you have the #!/bin/sh line at the top of the script, you're asking
the current shell (bash, tcsh, whatever) explicitly to execute the script
using /bin/sh (which, on Cygwin, is ash). If you want to ensure the
script is executed by bash, use the #!/bin/bash magic at the top of the
script. Assuming that /bin/sh = bash is non-portable.
|\ _,,,---,,_ firstname.lastname@example.org
ZZZzz /,`.-'`' -. ;-;;,_ email@example.com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html