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. |