1. sh csh ksh bash tcsh zsh rc es
2. Job control N Y Y Y Y Y N N
3. Aliases N Y Y Y Y Y N N
4. Shell functions Y(1) N Y Y N Y Y Y
5. "Sensible" Input/Output redirection Y N Y Y N Y Y Y
6. Directory stack N Y Y Y Y Y F F
7. Command history N Y Y Y Y Y L L
8. Command line editing N N Y Y Y Y L L
9. Vi Command line editing N N Y Y Y(3) Y L L
10. Emacs Command line editing N N Y Y Y Y L L
11. Rebindable Command line editing N N N Y Y Y L L
12. User name look up N Y Y Y Y Y L L
13. Login/Logout watching N N N N Y Y F F
14. Filename completion N Y(1) Y Y Y Y L L
15. Username completion N Y(2) Y Y Y Y L L
16. Hostname completion N Y(2) Y Y Y Y L L
17. History completion N N N Y Y Y L L
18. Fully programmable Completion N N N N Y Y N N
19. Mh Mailbox completion N N N N(4) N(6) N(6) N N
20. Co Processes N N Y N N Y N N
21. Builtin artithmetic evaluation N Y Y Y Y Y N N
22. Can follow symbolic links invisibly N N Y Y Y Y N N
23. Periodic command execution N N N N Y Y N N
24. Custom Prompt (easily) N N Y Y Y Y Y Y
25. Sun Keyboard Hack N N N N N Y N N
26. Spelling Correction N N N N Y Y N N
27. Process Substitution N N N Y(2) N Y Y Y
28. Underlying Syntax sh csh sh sh csh sh rc rc
29. Freely Available N N N(5) Y Y Y Y Y
30. Checks Mailbox N Y Y Y Y Y F F
31. Tty Sanity Checking N N N N Y Y N N
32. Can cope with large argument lists Y N Y Y Y Y Y Y
33. Has non-interactive startup file N Y Y(7) Y(7) Y Y N N
34. Has non-login startup file N Y Y(7) Y Y Y N N
35. Can avoid user startup files N Y N Y N Y Y Y
36. Can specify startup file N N Y Y N N N N
37. Low level command redefinition N N N N N N N Y
38. Has anonymous functions N N N N N N Y Y
39. List Variables N Y Y N Y Y Y Y
40. Full signal trap handling Y N Y Y N Y Y Y
41. File no clobber ability N Y Y Y Y Y N F
42. Local variables N N Y Y N Y Y Y
43. Lexically scoped variables N N N N N N N Y
44. Exceptions N N N N N N N Y
45.
46. Key to the table above.
47.
48. Y Feature can be done using this shell.
49.
50. N Feature is not present in the shell.
51.
52. F Feature can only be done by using the shells function
53. mechanism.
54.
55. L The readline library must be linked into the shell to enable
56. this Feature.
57.
58. Notes to the table above
59.
60. 1. This feature was not in the orginal version, but has since become
61. almost standard.
62. 2. This feature is fairly new and so is often not found on many
63. versions of the shell, it is gradually making its way into
64. standard distribution.
65. 3. The Vi emulation of this shell is thought by many to be
66. incomplete.
67. 4. This feature is not standard but unoffical patches exist to
68. perform this.
69. 5. A version called 'pdksh' is freely available, but does not have
70. the full functionality of the AT&T version.
71. 6. This can be done via the shells programmable completion mechanism.
72. 7. Only by specifing a file via the ENV environment variable.