Comparison of shells
Initially, the Unix OS used a shell program called the Bourne shell. Then, eventually, many more shell programs were developed for different flavors of Unix. The following is some brief information about different shells:
sh
—Bourne shellcsh
—C shellksh
—Korn shelltcsh
—enhanced C shellbash
—GNU Bourne Again shellzsh
—extension tobash
,ksh
, andtcsh
pdksh
—extension toksh
A brief comparison of various shells is presented in the following table:
Feature | Bourne | C | TC | Korn | Bash |
Aliases | no | yes | yes | yes | yes |
Command-line editing | no | no | yes | yes | yes |
Advanced pattern matching | no | no | no | yes | yes |
Filename completion | no | yes | yes | yes | yes |
Directory stacks ( | no | yes | yes | no | yes |
History | no | yes | yes | yes | yes |
Functions | yes | no | no | Yes | yes |
Key binding | no | no | yes | no | yes |
Job control | no | yes | yes | yes | yes |
Spelling correction | no | no | yes | no | yes |
Prompt formatting | no | no | yes | no | yes |
What we see here is that, generally, the syntax of all these shells is 95% similar. In this book, we are going to follow Bash shell programming.