Now I understand !

David Selby cygwin@pusspaws.net
Tue Aug 5 22:46:00 GMT 2003


David Selby wrote:

> Igor Pechtchanski wrote:
>
>> 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
>>
>
> I have #!/bin/sh at the start of my script, so I am running bash as 
> such but the shell script is asking to be interpreted by sh.
>
> Just that in debian woody /bin/sh is linked to /bin/bash so there was 
> no problem
>
> Thanks for the explanation ...
> Dave
>


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list