This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Fun with #! (aka shebang) and filenames ending in .exe
Larry Hall wrote:
./foo.sh
mv foo.sh foo.exe
./foo.exe
The first foo.sh works fine. The second... well, it's entertaining.
I have to kill the window, ^C is ignored.
Well, ^C worked for me, though the terminal then would not respond to
any other input. Maybe that's what you meant by "it's entertaining".
I wouldn't expect the same results everywhere, but when
I try it, the scroll bar goes away, and the screen is filled
with falling snow.
Now, I know one shouldn't do nasty tricks like that, but
I ran into it very innocently. I was trying to make a distcc
masquerade directory on cygwin; my technique has been to
create shell scripts with the same name as the real app
that set a few variables and run a different app with the
original commandline as arguments. On cygwin, the original
app was named something.exe, so using my usual technique, I
created a shell script named something.exe, and kerblooie!
Yes, this is a known issue. It's the same old problem one would expect
to have on a system that relies on the filename to determine what it
should do with the file. You'd see something similar with a .bat/.exe
file combination in Windows, unless I'm misinterpreting what you're
saying..
Yes, except that since the exec is being done by Cygwin,
you'd expect it to maybe pay attention to the #! line
before trusting the .exe suffix. But since #! isn't
a Posix requirement, Cygwin is well within its rights to
ignore it in this case.
(cf. http://www.in-ulm.de/~mascheck/various/shebang/ )
Anyway, my scripts now strip off .exe where appropriate
(i.e. when naming wrapper scripts) and add the missing
.exe where appropriate (i.e. when trying to remove files),
and that works fine.
- Dan
--
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change
--
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/