Comparison of shells
Initially, the UNIX OS used a shell program called Bourne Shell. Then eventually, many more shell programs were developed for different flavors of UNIX. The following is brief information about different shells:
- Sh—Bourne Shell
 - Csh—C Shell
 - Ksh—Korn Shell
 - Tcsh—enhanced C Shell
 - Bash—GNU Bourne Again Shell
 - Zsh—extension to Bash, Ksh, and Tcsh
 - Pdksh—extension to KSH
 
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 (pushd and popd)  | 
 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.