is it valid to set the not in the first line of a script with #!

I am a very important and  yet again mixed envirment.  

each machine has one of "bash or ksh"

If there is bash I want to use it, otherwise I can use ksh.   I never ever want to use "sh" because there are lines in my scripts  that will not run with an oversimplistic shell

Here is my solution and I need to know if people forsee a a problem with selecting your shell after the script starts.

## set environment so you never get /bin/sh !!!
if [[ -e "/bin/bash" ]];  then
echo $SHELL

Oh, I am in a redhat, solaris, aix envirement with either bash OR  ksh
Who is Participating?
woolmilkporcConnect With a Mentor Commented:
The SHELL variable doesn't have any influence on which interpreter is used for the script.
It's a variable like any other one, and the shell itself never evaluates it.

Best use the code you posted as a wrapper to start your script:

if [[ -e "/bin/bash" ]];  then
                /bin/bash "$@"
                                /bin/ksh "$@"

Call this script e.g. "launch"

and run

launch /path/to/script param1 param2 param3 paramn

Please don't use a shebang line "#!/bin/bash" or "#!/bin/ksh" in the called scripts with the above solution.
Please see your other question on this topic for an "inline" solution!
What user will be invoking the script?

If their login shell is either bash or ksh depending on the environment, then simply omit the #! line on the script/s and it will run under the shell of the user that is running the script.
TIMFOX123Author Commented:
Sorry for me taking so long to get back.  I work all the time and rarely get out to the "real internet "

thanks porky
All Courses

From novice to tech pro — start learning today.