Difference Between KSH and BASH
KSH vs. BASH
There are many “shells” in both Linux and Unix. Two kinds of these numerous shells are KSH and Bash.
KSH and Bash are shells in the field of computer programming, and they each have their own set of commands and features. KSH and Bash are somewhat related to each other since KSH encompasses the features of the .sh or Bourne shell, the predecessor of the Bash shell.
Both have programmable shells and command processors in Linux and UNIX computer systems. They also carry out commands via a keyboard terminal or from a file.
KSH is also known as the Korn shell. The Korn shell was developed by David Korn, and it attempts to merge the features of fellow shells like the C shell, TC shell, and Bourne shell. It allows the developers to create new shell commands when needed.
The Korn shell was developed many years before the emergence of the BASH shell. Because it is older than BASH, it has fewer resources, and it also attracts a limited scope of computer users. To compensate, the Korn shell has released different versions like pdksh (Public domain ksh), mksh (a modification of the pdksh), ksh88, and the most recent ksh93.
The Korn shell has associative arrays and handles the loop syntax better than Bash. The Korn shell’s print command is also better than the Bash echo command. This shell’s r-history command allows a quicker process of doing a rerun of older commands.
On the other hand, “Bash” stands for “Bourne Again Shell.” It is basically a clone of the Bourne shell (or .sh). It was created by the Freeware Software Foundation, and it is written and licensed under the GNU or General Public License. These factors make the Bash shell a public domain shell. It is completely free of charge and widely used in the open-source community.
Because it echoes some of the features of the original Bourne shell, it also has features similar to those of the Korn shell, with some added extensions. The Bash, compared to the KSH shell, is more recent, more popular, and has a multitude of resources for people who wish to learn about using this particular shell.
Two of the useful features of Bash are tab completion and the easier method of setting a prompt in order to display the current directory. Bash is also the current default shell in many Linux models.
Both shells can be used interchangeably since they share some features of the Bourne shell. A syntax in the KSH shell can run in a Bash shell without encountering errors or problems.
Summary:
1.Both KSH and Bash function as interactive command interpreters and command programming languages in the Linux or UNIX systems.
2.KSH and Bash shells are also products of combinations of other shells’ features. Bash and KSH are both Bourne-compatible shells. Since they share common features, they can be used interchangeably. This causes some confusion for novice users.
3.Both shells are standard shells in a UNIX system and can be replaced depending on the user’s needs and preferences.
4.Both KSH and Bash are available to use in many platforms.
5.Bash is a newer shell compared to the KSH. Bash, as the newer shell, has more resources and more computer users. Bash is a free and public utility shell that is often used in open-source communities and applications.
6.Bash also acts as an extension of the Korn shell, since it incorporates the features of the latter, with some added features.
- Differences Between Fraternity And Sorority - January 8, 2014
- Differences Between Lucite and Plastic - January 7, 2014
- Differences Between Oil and Butter - January 6, 2014
Search DifferenceBetween.net :
Email This Post : If you like this article or our site. Please spread the word. Share it with your friends/family.
5 Comments
Leave a Response
References :
[0]https://www.tecmint.com/different-types-of-linux-shells/
It’s a very general overview. I would keen to see some real life examples involving difference in dealing with arrays, history, printing and loops – but no luck. My score – B minus.
Thank you!!
“Both shells can be used interchangeably since they both belong and ascribe some features of the Bourne shell. A syntax in the KSH shell can run in a Bash shell without encountering errors or problems.”
Yeah, about that. That’s not always true. Older versions of bash don’t like if statements with multiple conditionals. Korn shell will let you do this, but bash can be problematic with this. In other words, with korn shell you can write an if statement like this:
if [[ $variable_a = “” ]] && [[ $variable_b = “” ]] && [[ $variable_c = “” ]]; then
In older versions of bash you have to keep the number of conditionals in the if statement to two or less. That would look like this:
if [[ $variable_a = “” ]] && [[ $variable_b = “” ]]; then
Some versions of bash don’t even allow for two conditionals in an if statement. The workaround is to use nested if statements like this:
if [[ $variable_a = “” ]];then
if [[ $variable_b = “” ]]; then
echo “executing stuff”
fi
fi
In this respect, Korn shell has an advantage over bash since it is more friendly to multiple conditionals in an if statement.
While they share the same roots with the Bourne shell, they’re hardly interchangable. If you are used to the interactive !! or !$ in BASH, you’ll get “ksh: !!: not found.” in Korn. The syntax for arrays are different. etc etc etc
The Korn shell was proprietary and only available if purchased for years, so it was unavailable to Linux or the *BSD projects. Korn has the feel of the old Unix hard-wired, serial terminal days. BASH has the feel of the IBM keyboard used on nearly every (USA) PC.
First I must agree with jeffp
I’ve used a few different shells and most definitely prefer KSH. I was introduced to it in the mid 80’s on IBM’s RS6000. Not long before that, I’d been pecking about with SH and CSH on Sun Sparc stations. I learned about BASH in the mid 90’s when I was introduced to Linux. The combination of versatility and ability to do things that SH and BASH couldn’t drew me in. CSH could do everything, but we’re back to C style programming. Too much work. LOL
I have done a bit of C programming, mostly file manipulation APT files for CNC machines and such. The speed of a compiled C program is amazing, but the amount of grunt level programming required just to say “Hello World” let alone pulling and manipulating fields was too much for my ADHD 🙂 That and having to re-compile every change was tedious.
With KSH (and a few PHP programs to make the email look nice) I was able to write the entire back end of an FTP server. It took about 35 scripts to do so. It logged incoming and outgoing files to a database. Figured out who needed notifications and emailed the proper recipients for several separate facilities and literally hundreds of vendors.
It served for over 10 years, slowly being modded as necessary. Not too shabby for a “free” piece of software. It was recently retired and replaced by a larger system with a team of programmers.