Principal Differences
Using variables
Conditional modifiers
Variable assignment command prefix
Shell internal settings
Process ID variables
ksh/bash additional features
ksh/bash syntax
Input redirection
Command pipelines
Script input
Character string tests
Additional tests for [[...]] (ksh and bash)
Negating and Combining tests
Looping: 'while' and 'for' loops
Miscellaneous flow control and subshells
Numeric variables
Calling functions.
Reuseable functions
Explicitly opening or duplicating file descriptors
Input and output to open file descriptors (ksh)
Closing file handles
Capture the exit status of a command in the middle of a pipeline
Displaying text, files or parts of files
Compression and archiving
Sorting and searching for patterns
System information (users, processes, time)
Conditional tests
Stream Editing
Finding and comparing files
Arithmetic and String Manipulation
Merging files
Online Resources
Unix-like shells and utilities for Microsoft Windows