[CentOS] Real sh? Or other efficient shell for non-interactive scripts

Fri Apr 24 16:59:22 UTC 2015
Steve Lindemann <steve at marmot.org>

On 4/24/2015 10: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.

A script with no shebang will run in the environment of the account 
running the script.  If that account is root and root uses the bash 
shell then the script will run in the bash shell.  If that account uses 
the korn shell then the script will run in a korn shell... etc.  So it 
depends and Pete was more correct.

All the Sun systems I worked on (way in the past) had the bourne shell 
on the root account and I usually set my account up with a korn shell. 
On linux boxes both the root and personal account use the bash shell. 
Some systems will use a C shell, and, of course, other choices.

If you want a script to run under a specific shell you NEED the shebang 
line at the beginning.  Assuming the bourne shell as a default is not 
reliable.

If you use good coding practices you will have that shebang line at the 
beginning of all scripts.