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 ?
Dave
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.
Igor