The table below is a sampling of features that are different among the three shells.
| sh | ksh | csh | Meaning/Action | 
|---|---|---|---|
| $ | $ | % | Prompt. | 
| >! | Force redirection. | ||
| >>! | Force append. | ||
> file 2>&1 | > file 2>&1 | >& file | Combine stdout and stderr. | 
| { } | Expand elements in list. | ||
| ` ` | $(  ) | ` ` | Substitute output of enclosed command. | 
| $HOME | $HOME | $home | Home directory. | 
| ~ | ~ | Home directory symbol. | |
var=value | var=value | set var=value | Variable assignment. | 
export var | export var=val | setenv var val | Set environment variable. | 
${nn} | More than 9 args can be referenced. | ||
| "$@" | "$@" | All args as separate words. | |
| $# | $# | $#argv | Number of arguments. | 
| $? | $? | $status | Exit status. | 
| $! | $! | Background exit status. | |
| $- | $- | Current options. | |
.  file | .    file | source file | Read commands in file. | 
alias x=y | alias x y | Name x stands for y. | |
| case | case | switch/case | Choose alternatives. | 
| cd ~- | popd/pushd | Switch directories. | |
| done | done | end | End a loop statement. | 
| esac | esac | endsw | End case or switch. | 
exit [n] | exit [n] | exit [(expr)] | Exit with a status. | 
| for/do | for/do | foreach | Loop through variables. | 
| print -r | glob | Ignore echo escapes. | |
| hash | alias -t | hashstat | Display hashed commands (tracked aliases). | 
hash cmds | alias -t cmds | rehash | Remember command locations. | 
| hash -r | unhash | Forget command locations. | |
| history | history | List previous commands. | |
| r | !! | Redo previous command. | |
r str | !str | Redo command that starts with str. | |
r x=y cmd  | !cmd:s/x/y/ | Edit command, then execute. | |
if [ $i -eq 5 ] | if ((i==5)) | if ($i==5) | Sample if statement. | 
| fi | fi | endif | End if statement. | 
| ulimit | ulimit | limit | Set resource limits. | 
| pwd | pwd | dirs | Print working directory. | 
| read | read | $< | Read from terminal. | 
| trap 2 | trap 2 | onintr | Ignore interrupts. | 
| unalias | unalias | Remove aliases. | |
| until | until | Begin until loop. | |
| while/do | while/do | while | Begin while loop. |