# Chapter 4. The Bourne Shell and Korn Shell

#### Contents:

Overview of Features
Syntax
Variables
Arithmetic Expressions
Command History
Job Control
Invoking the Shell
Restricted Shells
Built-in Commands (Bourne and Korn Shells)

This chapter presents the following topics:

- Overview of features

- Syntax

- Variables

- Arithmetic expressions (Korn shell only)

- Command history (Korn shell only)

- Job control

- Invoking the shell

- Restricted shells

- Built-in commands

http://www.kornshell.com provides considerable information about the Korn shell. Follow the links there for binaries of `ksh93` that can be downloaded for noncommercial and educational use. See also Learning the Korn Shell, which is listed in the Bibliography.

## 4.1. Overview of Features

The Bourne shell is the standard shell and provides the following features:

- Input/output redirection

- Wildcard characters (metacharacters) for filename abbreviation

- Shell variables for customizing your environment

- A built-in command set for writing shell programs

- Job control (beginning in SVR4)

The Korn shell is a backward-compatible extension of the Bourne shell. Features that are valid only in the Korn shell are so indicated:

- Command-line editing (using the command syntax of either `vi` or `emacs`)

- Access to previous commands (command history)

- Integer arithmetic

- More ways to match patterns and substitute variables

- Arrays and arithmetic expressions

- Command-name abbreviation (aliasing)

- More built-in commands

`ksh93` adds the following capabilities:

- Upwards compliance with POSIX

- Internationalization facilities

- An arithmetic `for` loop

- Floating-point arithmetic and built-in arithmetic functions

- Structured variable names and indirect variable references

- Associative arrays

- Even more ways to match patterns and substitute variables

- Even more built-in commands

Copyright © 2003 O'Reilly & Associates. All rights reserved.