On Fri, April 24, 2015 12:04 pm, John R Pierce wrote:
On 4/24/2015 9:47 AM, Gordon Messmer wrote:
On 04/24/2015 03:57 AM, Pete Geenhuizen wrote:
if you leave it out the script will run in whatever environment it currently is in.
I'm reasonably certain that a script with no shebang will run with /bin/sh. I interpret your statement to mean that if a user is using ksh and enters the path to such a script, it would also run in ksh. That would only be true if you "sourced" the script from your shell.
oh fun, just did some tests (using c6.latest). if you're in bash, ./script (sans shebang) runs it in bash. if you're in dash or csh, ./script runs it in sh. if you're in ksh, it runs it in ksh.
Wow! Surprise ;-)
I just tested it on my FreeBSD workstation, and all works as expected (i.e. the script obeys shebang). Just in case, here is the contents of my test script:
######## #!/bin/sh
readlink /proc/$$/file ########
( note that that "file" is because I'm using FreeBSD /proc, for Linux you may need to replace the line with something like:
readlink /proc/$$/exe
Now the fun part
in bash:
$ echo $0 bash
$ ./test /bin/sh
in tcsh
% echo $0 tcsh
% ./test /bin/sh
in zsh
% echo $0 zsh
% ./test /bin/sh
But yet funnier thing:
$ bash ./test /usr/local/bin/bash
$ tcsh ./test /bin/tcsh
$ zsh ./test /usr/local/bin/zsh
Well, no creepy surprises for me ! ;-)
(you can do the same on Linux of your choice and see if it behaves ;-)
Thanks. Valeri
++++++++++++++++++++++++++++++++++++++++ Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247 ++++++++++++++++++++++++++++++++++++++++