This is the mail archive of the
mailing list for the Cygwin project.
Re: cygwin-bash compat/regression bug... startup line prob
- From: Linda Walsh <cygwin at tlinx dot org>
- To: cygwin at cygwin dot com
- Date: Thu, 01 May 2014 11:11:15 -0700
- Subject: Re: cygwin-bash compat/regression bug... startup line prob
- Authentication-results: sourceware.org; auth=none
- References: <535EBD61 dot 5080109 at tlinx dot org> <535EC59E dot 9080602 at redhat dot com> <5361E22D dot 40408 at tlinx dot org> <5361ECA1 dot 1040302 at redhat dot com>
Eric Blake wrote:
On 04/30/2014 11:57 PM, Linda Walsh wrote:
Eric Blake wrote:
On 04/28/2014 02:43 PM, Linda Walsh wrote:
Um... it doesn't work with 1 argument either.
Your context quoting is hard to follow. Here, you are complaining about
a she-bang with only one argument,...
I think we are on two different pages.
While I had the example with -u + -x, later on in the same note,
It has something to do with the "-u" switch -- the "-x" was
added to try to figure out why a script that had just
died w/o executing a single line.
| > cat bin/t.sh
| #!/bin/bash -u -x
which is indeed invalid usage].
Not on linux, which you say cygwin follows. *YOU* quoted it
On Linux, the entire string following the
interpreter name is passed as a single argument to the
interpreter, and this string can include white space.
A maximum line length of 127 characters is allowed for the first
line in a #! executable shell script.
On linux, (and, thus on cygwin?), "#!/bin/bash -u -x -a -b -c"
is passed as 1 argument to bash. I.e. the spaces don't break things
into separate arguments on linux. So any line up to 127 characters
is allowed and anything after the executable name is a single argument
to the end of the line (or 127 chars total).
I.e. the above is valid as well -- but it was the single "-u" switch
that doesn't work.
Also weird -- the interp line says "/bin/bash" not "/usr/bin/bash"
as the shell, so why does the error come from /usr/bin/bash?
the answer to this question.
This isn't clear to me. If I am running /bin/bash, why did the error
Because you weren't running /bin/bash at that point in time, but
/usr/bin/bash. Again, you snipped the relevant portion of your original
No...I was... the output at the top was from "t.sh", which had
But the error message says /usr/bin/bash.
| > bash t.sh
but that says to run 't.sh' using the 'bash' interpreter found first in
But that is not the first example in the email nor the one that gave
the /usr/bin/bash as the error message source.
I said later, that "bash t.sh" worked.. (as well as /bin/bash t.sh)...
it's only when invoked w/o specifying the interpreter on the command
line. (i.e. going from the shebang line which says /bin/bash)
So why doesn't a single argument work (-u?)
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple