The Bourne Shell

A.1 The Bourne Shell

bash is almost completely backward-compatible with the Bourne shell. The only significant feature of the latter that bash doesn't support is ^ (caret) as a synonym for the pipe () character. This is an archaic feature that the Bourne shell includes for its own backward compatibility with earlier shells . No modern UNIX version has any shell code that uses ^ as a pipe.

To describe the differences between the Bourne shell and bash , we'll go through each chapter of this book and enumerate the features discussed in the chapter that the Bourne shell does not support. Although some versions of the Bourne shell exist that include a few bash features, [A] we refer to the standard, Version 7 Bourne shell that has been around for many years .

[A] For example, the Bourne shell distributed with System V supports functions and a few other shell features common to bash and the Korn shell.

Chapter 1

The cd - form of the cd command; tilde ( ~ ) expansion; the jobs command; the help built-in.

Chapter 2

All. (That is, the Bourne shell doesn't support any of the readline , history, and editing features discussed in this chapter.)

Chapter 3

Aliases; prompt string customization; set options. The Bourne shell supports only the following: -e , -k , -n , -t , -u , -v , -x , and - . It doesn't support option names ( -o ). The shopt built-in. Environment files aren't supported. The following built-in variables aren't supported:

BASH

BASH_VERSION

BASH_ENV

BASH_VERSINFO

CDPATH

DIRSTACK

FCEDIT

GROUPS

HISTCMD

HISTCONTROL

HISTFILE

HISTIGNORE

HISTSIZE

HISTFILESIZE

HOSTFILE

HOSTNAME

HOSTTYPE

IGNOREEOF

INPUTRC

LANG

LC_ALL

LC_COLLATE

LC_MESSAGES

LINENO

MAILCHECK

OLDPWD

OPTARG

OPTERR

OPTIND

OSTYPE

PROMPT_COMMAND

PIPESTATUS

PS3

PS4

PWD

RANDOM

REPLY

SECONDS

SHELLOPTS

SHLVL

TIMEFORMAT

TMOUT

auto_resume

histchars

Chapter 4

Functions; the type command; the local command; the ${#parameter} operator; pattern-matching variable operators ( % , %% , # , ## ). Command-substitution syntax is different: use the older ` command ` instead of $( command ). The built-in pushd and popd commands.

Chapter 5

The ! keyword; the select construct isn't supported. The Bourne shell return doesn't exit a script when it is sourced with . (dot).

Chapter 6

Use the external command getopt instead of getopts , but note that it doesn't really do the same thing. Integer arithmetic isn't supported: use the external command expr instead of the $(( arithmetic-exp )) syntax. The arithmetic conditional (( arithmetic-exp )) isn't supported; use the old condition test syntax and the relational operators -lt , -eq , etc. Array variables are not supported. declare and let aren't supported.

Chapter 7

The command , builtin , and enable built-ins . The -e and -E options to echo are not supported. The I/O redirectors > and <> are not supported. None of the options to read is supported.

Chapter 8

Job control ” specifically , the jobs , fg , and bg commands. Job number notation with % , i.e., the kill and wait commands only accept process IDs. The - option to trap (reset trap to the default for that signal). trap only accepts signal numbers , not logical names. The disown built-in.

Chapter 9

The DEBUG fake signal is not supported. The EXIT fake signal is supported as signal 0.

Chapter 10

The ulimit command and privileged mode aren't supported. The -S option to umask is not supported. The Bourne shell's restrictive counterpart , rsh , only inhibits assignment to PATH .

 



Learning the Bash Shell
Learning the bash Shell: Unix Shell Programming (In a Nutshell (OReilly))
ISBN: 0596009658
EAN: 2147483647
Year: 1998
Pages: 104

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net