Your (internal) RedHat system administrators will be able to do this for you. It's a trivial operation, something like this
yum install ksh
The system default shell and the shell used to run your scripts does not have to be the same. The shebang line tells your system which interpreter (which shell) to use to run a given script.
Bear in mind, though, that just because you have ksh
installed your scripts may still not work. Depending on what they do and how they do it, they may require additional tools to be installed or you may even need to completely rewrite them to use different tools.
If your organisation has no experience with RH yet then I would ask why you're starting an application migration to it so soon. None of the Linux-based distributions are really drop-in replacements for Solaris.
There was a follow-up question in the comments asking about the use of #!/bin/sh
on Solaris (where sh
is symlinked to ksh93
), and also asking what would happen for a script without a shebang.
In the first situation it depends how you run your scripts. Consider a script called action
. If you run sh action
(or sh /path/to/action
) then you use the sh
interpreter regardless of what is on the shebang line. For Solaris this is effectively ksh
but on Linux-based systems it could be bash
, ksh
, or even dash
. On the other hand, if your script is executable and in the $PATH
, and you run it as action
(or it's executable and you use /path/to/action
), then the shebang line takes effect and /bin/ksh
is used to execute the script.
As far as running a script without a #!
instruction to define the interpreter, it depends entirely on the shell that you're using to call the script. Not recommended.