This is the mail archive of the
mailing list for the Cygwin project.
RE: Getting started with bash
- From: "Buchbinder, Barry (NIH/NIAID) [E]" <BBuchbinder at niaid dot nih dot gov>
- To: <cygwin at cygwin dot com>
- Date: Mon, 7 Apr 2008 09:17:23 -0400
- Subject: RE: Getting started with bash
- References: <D9C5C745FD957899B39D7759@192.168.1.20> <firstname.lastname@example.org>
Mark J. Reed wrote on Monday, April 07, 2008 8:21 AM:
> You hit the nail on the head with the environment vars question.
> Bash tries to do the minimum amount of work possible when invoked
> non-interactively, on the assumption - almost universally true in
> *NIX - that it is being invoked by a process (usually another shell)
> that has its environment all set up already. So when that's not the
> case, you need to tell bash so by adding the "-l" or "--login"
> option, so it will go out and read login-oriented startup files
> ([bash_]profile) to set up its own environment.
> On 4/7/08, Joel M. Baldwin <email@example.com> wrote:
>> --On Monday, April 07, 2008 10:25 AM +0200 Michael Holm
>> <firstname.lastname@example.org> wrote:
>>> I have read a lot of documents, but i really cant get this issue
>>> solved :( All i want is to be able to execute bash scripts from a
>>> windows desktop.. what i do now is..
>>> a batch script:
>>> c:\cygwin\bin\bash c:\cygwin\example.sh
>>> this is my bash script.
>>> ls -l
>>> but i get the following output:
>>> command not found.
>>> i hope that someone can give me a hit... all i have done is:
>>> install cygwin, made my batch script.. and made my bash script.. do
>>> i need to set any environment vars or something?
>>> Michael Holm
>> Add the -l option to bash.
>> i.e. "man bash" for an explanation
>> This makes it a login shell which must cause the PATH variable to be
You might also want to us "-c", e.g.,
bash -lc script
if you want bash to close automatically at the end of the script.
Also, I'm not sure that giving DOS/Windows paths will work, nor may paths using backslashes ("\"), which in unix-land are escape characters, for path separators (forward slashes ("/")). So be sure that example.sh is in a directory that is in your path, or figure out what the full unix/cygwin path to it is, e.g.,
bash -l /cygdrive/c/cygwin/example.sh
bash -l /example.sh