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