Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!ucsd!ucbvax!tut.cis.ohio-state.edu!comp.vuw.ac.nz!nickson From: nickson@comp.vuw.ac.nz (Ray Nickson) Newsgroups: gnu.bash.bug Subject: confusion when executing shell scripts Message-ID: <8909040112.AA21395@comp.vuw.ac.nz> Date: 4 Sep 89 01:10:57 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 23 The following bug which I reported in version 1.02 does not seem to have gone away in 1.03. From: Ray Nickson Date: Fri, 25 Aug 89 11:07:10 +1200 If I execute a shell script for which I have execute permission, but which does not start with #!, bash runs it itself (via a recursive call on main() !!). This is fine, except that if the parent bash is a login shell, so is the forked child, and it runs .profile. I was burned by this when I included `. ~/.bashrc' in my .profile; one of the commands that .bashrc ran was a script ... (my solution was simply to start using a .bash_profile instead). Any reason not to just zero the login_shell variable and remove the - from argv[0] before calling main()? You might also want to act_like_sh in this case (if you don't already) - does this have any impact other than on what startup files are run? -rgn -- Ray Nickson, Dept. Comp. Sci., Victoria University of Wellington, New Zealand nickson@comp.vuw.ac.nz ...!uunet!vuwcomp!nickson + 64 4 721000x8593