Path: utzoo!telly!philmtl!uunet!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 bash executes shell scripts Message-ID: <8908242310.AA12686@comp.vuw.ac.nz> Date: 24 Aug 89 23:07:10 GMT Article-I.D.: comp.8908242310.AA12686 Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 17 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