Differing Features

The following table displays features that are different among the three shells.

bash

ksh

tcsh

Meaning/action

$

$

%

Prompt.

>|

>|

>!

Force redirection.

  

>>!

Force append.

> file 2>&1

> file 2>&1

>& file

Combine stdout and stderr.

>& file

 

>& file

Combine stdout and stderr.

' '

' '

' '

Substitute output of enclosed command.

$()

$()

 

Substitute output of enclosed command. (Preferred form.)

$HOME

$HOME

$home

Home directory.

var = value

var = value

setvar=value

Variable assignment.

export var = val

export var = val

setenv var val

Set environment variable.

${ nn }

${ nn }

 

More than nine args can be referenced.

"$@"

"$@"

 

All args as separate words.

$#

$#

$#argv

Number of arguments.

$?

$?

$status

Exit status.

$!

$!

 

Last background Process ID.

$-

$-

 

Current options.

. file

. file

source file

Read commands in file.

aliasx=y

aliasx=y

alias x y

Name x stands for y.

case

case

switch/case

Choose alternatives.

cd ~-

cd ~-

popd/pushd

Switch directories.

popd/pushd

 

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

echo -E

print -r

glob

Ignore echo escapes.

hash

alias -t

hashstat

Display ...

Get Unix in a Nutshell, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.